MIP decisions¶
Generated by marola-devkit's decisions from each MIP's §1 first sentence, its "Alternatives
considered" bullets and its **Decided YYYY-MM-DD:** lines (MIP-0085 §5.6). Edit the MIPs, not
this file; route why "<words>" ranks these rows.
| MIP | § | Status | Kind | Decision |
|---|---|---|---|---|
| MIP-0001 | 1 | Implemented | summary | marola ranks beaches by waves, wind, temperature and a jellyfish heuristic, but says nothing about whether the water is fit to swim in, and in Santa Catarina that is published, per sampling point, by the state environment agency (IMA). |
| MIP-0001 | 9 | Implemented | alternative | Do nothing (rejected): Leaves the Ponto 73 case unaddressed |
| MIP-0001 | 9 | Implemented | alternative | Parse the PDF bulletins (rejected): Works, no coordinates |
| MIP-0001 | 9 | Implemented | alternative | Let the LLM write the lore (rejected): Cheapest to build |
| MIP-0001 | 9 | Implemented | alternative | Score RESULTADO directly (e.g. penalise 100-800 enterococci as "borderline") (rejected): Tempting, but it second-guesses the agency's own five-sample classification with a single number |
| MIP-0002 | 1 | Draft | summary | Everything marola computes is reachable only from a terminal. |
| MIP-0002 | 9 | Draft | alternative | WhatsApp (needs Business API approval) (rejected) |
| MIP-0002 | 9 | Draft | alternative | A Telegram library (java-telegram-bot-api, TelegramBots) (rejected) |
| MIP-0003 | 1 | Draft | summary | A marola answer today costs one 30-45s Overpass query, twelve sequential Open-Meteo calls and one IMA download, every time, for every user, even for the same beach twice in a minute. |
| MIP-0003 | 9 | Draft | alternative | Self-hosted Overpass (rejected): the "proper" fix |
| MIP-0003 | 9 | Draft | alternative | SQLite instead of files (rejected): nicer queries, one more dependency |
| MIP-0003 | 9 | Draft | alternative | Redis (rejected): right tool for a multi-instance bot |
| MIP-0004 | 1 | Draft | summary | A bot people query once is a novelty; a message that arrives at 18:00 saying "amanhã 07:00 na Joaquina: 82/100, água própria, baleias prováveis" is a habit. |
| MIP-0004 | 9 | Draft | alternative | Push for everyone who ever shared a location (rejected): no consent, no |
| MIP-0004 | 9 | Draft | alternative | Instagram/WhatsApp status cards (rejected): later |
| MIP-0004 | 9 | Draft | alternative | Only SC forever (rejected): simpler, and caps the audience at one state |
| MIP-0005 | 1 | Implemented | summary | Today every answer costs a live pipeline run per person. |
| MIP-0005 | 9 | Implemented | alternative | Dynamic site (server + API) (rejected): Needs hosting, auth |
| MIP-0005 | 9 | Implemented | alternative | Map inside Telegram (sendLocation/venue messages) (rejected): Useful for one beach |
| MIP-0005 | 9 | Implemented | alternative | A native app on a friend's developer account (rejected): Store review, two codebases |
| MIP-0005 | 9 | Implemented | alternative | Supabase as the data store (rejected): Not needed for read-only data |
| MIP-0006 | 1 | Draft | summary | Forecasts say what the sea should be doing; a photo says what it is doing. |
| MIP-0006 | 9 | Draft | alternative | Buy camera access / partner with a cam provider (rejected): Real cameras, real money |
| MIP-0006 | 9 | Draft | alternative | Scrape public cams (rejected): No |
| MIP-0006 | 9 | Draft | alternative | Photos only in the bot, not on the map (rejected): Halves the value |
| MIP-0007 | 1 | Draft | summary | A pretrained time-series transformer (Nixtla's TimeGPT, or the open-weight models Chronos, TimesFM, Moirai) forecasts a numeric series from its history alone, zero-shot. |
| MIP-0007 | 9 | Draft | alternative | Nixtla API from day one (rejected): Fast to try |
| MIP-0007 | 9 | Draft | alternative | Hand-written rules only ("rain > 30 mm in 48 h → warn") (rejected): Cheaper, explainable, and probably the control that wins early |
| MIP-0007 | 9 | Draft | alternative | Do nothing until the bot exists (rejected): The accumulation part (§4.2) must start now or there is no series when the models are ready |
| MIP-0008 | 1 | Implemented | summary | Ship marola as container images, so anyone can run what nix develop + just run does without Nix: a lightweight JVM image (marola:jvm), a native binary image (marola:native, GraalVM native-image, JDK 25), a marola-ollama compose stack (marola + an Ollama sidecar with the model pre-pulled, the just run -- --summarize path), and marola-local: the same stack with the fine-tuned marola-llama3.2 model baked in (finetune/), versioned like code. |
| MIP-0008 | 9 | Implemented | alternative | Nix-built images (dockerTools) (rejected): reproducible and small |
| MIP-0008 | 9 | Implemented | alternative | A single fat marola-ollama image (Ollama + JRE + jar in one) (rejected): 4+ GB, rebuilt on every code change |
| MIP-0008 | 9 | Implemented | alternative | Smoke workflow deploying Pages itself (rejected): races with site.yml |
| MIP-0008 | 9 | Implemented | alternative | Do nothing (rejected): nix develop works |
| MIP-0009 | 1 | Implemented | summary | Every beach on the map becomes a wave marker coloured by its score instead of a plain dot, and hovering it (tapping, on a phone) shows every aspect marola already knows for that beach at the selected hour: wind level with an emoji, whale-sighting likelihood, jellyfish risk, water temperature, waves, water-quality verdict: the numbers the CLI prints, without opening the card. |
| MIP-0009 | 9 | Implemented | alternative | An emoji as the marker (🌊 in a divIcon) (rejected): cannot take the score colour |
| MIP-0009 | 9 | Implemented | alternative | A heat/density layer (leaflet.heat) (rejected): explicitly not wanted |
| MIP-0009 | 9 | Implemented | alternative | Permanent labels on every marker (rejected): unreadable at area zoom |
| MIP-0009 | 9 | Implemented | alternative | Popups on hover (rejected): Leaflet popups close on mouse-out and steal the map's focus |
| MIP-0009 | 9 | Implemented | alternative | MapLibre with data-driven symbols (rejected): richer, but a build step and a bigger vendor blob for one tooltip |
| MIP-0009 | 9 | Implemented | alternative | Do nothing (rejected): the card works |
| MIP-0010 | 1 | Implemented | summary | marola already measures itself: just benchmark scores three answer modes on 22 questions, the DSPy compile step optimises two prompts against a metric, and the fine-tune tiers produce model variants. |
| MIP-0010 | 9 | Implemented | alternative | Do nothing (rejected): the Markdown ledger and regex gate work today |
| MIP-0010 | 9 | Implemented | alternative | Langfuse (rejected): already optional in dspy/ |
| MIP-0010 | 9 | Implemented | alternative | Weights & Biases / hosted trackers (rejected): an account and a key for a personal project's ledger |
| MIP-0010 | 9 | Implemented | alternative | Java client instead of REST (rejected): see §4.2 |
| MIP-0011 | 1 | Implemented | summary | marola already follows the parts of Anthropic's guidance that are habits: a CLAUDE.md that imports AGENTS.md, two in-repo skills, one session per feature, a cost line per PR, the agent in a sandbox. |
| MIP-0011 | 9 | Implemented | alternative | Do nothing (rejected): the prose works most of the time |
| MIP-0011 | 9 | Implemented | alternative | Managed settings (managed-settings.json) (rejected): organisation-level |
| MIP-0011 | 9 | Implemented | alternative | ai-jail alone (rejected): filesystem/process containment, no notion of a paid API call or a test gate |
| MIP-0011 | 9 | Implemented | alternative | One giant settings.json PR (rejected): harder to attribute a regression (a hook slowing sessions) to a change |
| MIP-0012 | 1 | Draft | summary | Two changes, deliberately separable. |
| MIP-0012 | 9 | Draft | alternative | Do nothing (rejected): Keeps two toolchains and the admitted skew for a three-example bootstrap |
| MIP-0012 | 9 | Draft | alternative | Build ds4s as a library first (FUTURE-WORK.md §10) (rejected): Right scope for a general port |
| MIP-0012 | 9 | Draft | alternative | Replace LlmClient with llm4s everywhere (rejected): Lost on churn and weight on the local default |
| MIP-0012 | 9 | Draft | alternative | Adopt llm4s only for the compile step (rejected): Pointless |
| MIP-0012 | 9 | Draft | alternative | Kyo's AI modules / sttp-ai instead of llm4s (rejected): Cheaper effect fit |
| MIP-0012 | 9 | Draft | alternative | Make llm4s-ollama the default (rejected): Rejected until tools/JSON mode reach the local path (OQ1/OQ2) |
| MIP-0013 | 1 | Accepted | summary | Try OpenCode (MIT, anomalyco/opencode, v1.18.29 on 2026-09-04, in nixpkgs at 1.18.28) as the day-to-day coding agent for this repository, for a bounded experiment: two MIP-0010-sized tasks delivered end to end under OpenCode, measured on the things this repo already measures (gates green, Cost: per PR, review findings), against the same two tasks' Claude Code figures. |
| MIP-0013 | 9 | Accepted | alternative | Do nothing (rejected): Claude Code works and the subscription covers it |
| MIP-0013 | 9 | Accepted | alternative | Other harnesses (Codex CLI, Gemini CLI, Aider) (rejected): none reads .claude/skills/ and AGENTS.md as OpenCode does |
| MIP-0013 | 9 | Accepted | alternative | OpenCode for CI only (/oc in PR comments) (rejected): a paid run per mention with no reviewer |
| MIP-0013 | 9 | Accepted | alternative | Replace outright, skip the tryout (rejected): would discard a working |
| MIP-0014 | 1 | Draft | summary | marola has more written-down design and honesty than most personal projects (PHILOSOPHY.md, eleven MIPs, an effects map, a benchmarks ledger), but all of it is reference material, answering "what did we build" one file at a time, never "how would you build this, and why these specific choices, read start to finish." This MIP proposes turning that material into a real technical book, written in LaTeX, versioned in a git repository, built to PDF in CI on every push and released on every tag, the same production discipline this repo already applies to code, aimed at prose instead. |
| MIP-0014 | 9 | Draft | alternative | Do nothing (rejected): the docs already serve developers who read docs/ |
| MIP-0014 | 9 | Draft | alternative | mdBook / Docusaurus (Markdown-native, like The Rust Programming Language) (rejected): lower authoring friction |
| MIP-0014 | 9 | Draft | alternative | Pandoc, Markdown → LaTeX (rejected): see §4.5 |
| MIP-0014 | 9 | Draft | alternative | A book/ directory in this repo instead of a separate repo (rejected): see §5.4's trade-off paragraph |
| MIP-0014 | 9 | Draft | alternative | Blog-post series instead of a book (rejected): lower effort, no PDF/CI story |
| MIP-0015 | 1 | Draft | summary | Let a marola user say "I'm swimming at Beach X around Time Y" and see whether anyone else who said the same thing is going too; matching people to a shared swim, not broadcasting anyone's location. |
| MIP-0015 | 9 | Draft | alternative | Full real-time presence, à la NomadTable's "see who's nearby now" (rejected): richer, but continuous location for a toy project with a handful of users is a much bigger privacy surface than an opt-in |
| MIP-0015 | 9 | Draft | alternative | A public "who's here" layer on the map (rejected): deanonymizes immediately at marola's scale (§8) and breaks MIP-0005's "no cookies |
| MIP-0015 | 9 | Draft | alternative | Do nothing until the audio is confirmed (rejected): the honest default given §11.1 |
| MIP-0016 | 1 | Draft | summary | The map gets one small marker per bathing-water sampling point: a green circle with a ✓ for PRÓPRIA, a red circle with a ✕ for IMPRÓPRIA, grey with a ? |
| MIP-0016 | 9 | Draft | alternative | Draw the points where the agency puts them (rejected): measured to be on land for every fixture point (§2) |
| MIP-0016 | 9 | Draft | alternative | Fixed bearing per area ("the sea is east of Florianópolis") (rejected): wrong for the south and west coasts of the same island |
| MIP-0016 | 9 | Draft | alternative | Snap to the beach polygon's seaward edge (rejected): needs the coastline anyway to know which edge is seaward |
| MIP-0016 | 9 | Draft | alternative | Colour the beach marker per worst point, no pins (rejected): is what exists |
| MIP-0016 | 9 | Draft | alternative | Do nothing (rejected): the card lists the points |
| MIP-0017 | 1 | Draft | summary | Two external sources were surveyed for agentic-workflow ideas transferable to marola's own Claude Code setup (not marola-the-product): MadsLorentzen/ai-job-search (a personal job-application automation framework built on Claude Code, ~13.8k★) and four repos from GitHub's trending-agentic-tooling crop of the week of 2026-09-04. |
| MIP-0017 | 9 | Draft | alternative | Do nothing (skip this survey's ideas entirely) (rejected): loses two real efficiency/auditability ideas at zero-cost |
| MIP-0017 | 9 | Draft | alternative | Adopt pacifio/atlas (a real dependency) instead of §5.1's plain-CSV tracker (rejected): rejected |
| MIP-0017 | 9 | Draft | alternative | Adopt Graphify-Labs/graphify for codebase context (rejected): rejected |
| MIP-0017 | 9 | Draft | alternative | Adopt eneskirca/nodeterm-style parallel-session tooling (rejected): rejected |
| MIP-0017 | 9 | Draft | alternative | Mirror ai-job-search's numbered sub-file skill layout (01-…md, 02-…md inside one skill directory) for marola's own skills (rejected): considered for mip's multi-step template |
| MIP-0018 | 1 | Draft | summary | Marola's own development already produces MIP design docs, PR bodies with Cost:/Tested: trailers, and (as of this session) a GH_POST_MORTEM.md operator log: raw material that's already close to storytelling content. |
| MIP-0018 | 9 | Draft | alternative | Do nothing, keep reconstructing content manually each week (rejected): Real ongoing friction |
| MIP-0018 | 9 | Draft | alternative | Auto-generate the post text itself (LLM-written draft, not just a planner) (rejected): Rejected per §4's own research finding |
| MIP-0018 | 9 | Draft | alternative | A hosted/SaaS build-in-public tool (e.g. a Buffer/Hypefury-style scheduler) (rejected): Rejected |
| MIP-0018 | 9 | Draft | alternative | Wix as the blog platform (rejected): Not rejected outright |
| MIP-0018 | 9 | Draft | alternative | git subtree for the cross-repo mechanic (rejected): Rejected (§6 of docs/3-Working-on-the-repo/SELF-DOCUMENTING.md) |
| MIP-0019 | 1 | Draft | summary | scripts/arxiv_digest.py (new, this MIP's companion change) queried the live arXiv API across seven oceanography/forecasting/jellyfish-prediction search terms and cached 40 papers. |
| MIP-0019 | 9 | Draft | alternative | Do nothing (skip this survey) (rejected): Loses a real |
| MIP-0019 | 9 | Draft | alternative | An LLM-based relevance re-ranker on top of the raw arXiv results (ask a model "is this paper actually about marine jellyfish, not personality psychology or astronomy") (rejected): considered, rejected for v1 |
| MIP-0019 | 9 | Draft | alternative | Scraping GitHub's actual Trending page instead of the search API (rejected): Rejected |
| MIP-0020 | 1 | Draft | summary | marola gets an Instagram professional account whose first post is a picture of the live map with the GitHub Pages URL in the caption and the bio. |
| MIP-0020 | 9 | Draft | alternative | Do nothing (rejected): The map stays a README link |
| MIP-0020 | 9 | Draft | alternative | Post from a phone forever (v1 only) (rejected): Genuinely fine at one post a week |
| MIP-0020 | 9 | Draft | alternative | Instagram API with Facebook Login (rejected): Needs a Facebook Page linked to the account and pages_read_engagement |
| MIP-0020 | 9 | Draft | alternative | A third-party scheduler (Buffer/Later/Hootsuite) (rejected): Paid tiers for the useful parts |
| MIP-0020 | 9 | Draft | alternative | Unofficial/private-API clients (rejected): Against Instagram's terms |
| MIP-0020 | 9 | Draft | alternative | Threads instead (rejected): Has a publishing API too and is text-first |
| MIP-0020 | 9 | Draft | alternative | A --cron flag on ig_publish.py that skips the typed yes (rejected): Removes the consent step instead of replacing it |
| MIP-0020 | 9 | Draft | alternative | No gate at all (true autonomy) (rejected): The most literal reading of "autonomous daily posting agent" |
| MIP-0020 | 9 | Draft | alternative | A Telegram channel post first (rejected): The same render + cron + approval shape with no Meta app |
| MIP-0021 | 1 | Implemented | summary | An AccessibilityClient fetches, in one extra Overpass query per run, the amenities OpenStreetMap knows within 300 m of the beaches BeachFinder already found (parking, toilets, showers, lifeguard posts) and marola prints them as facts with counts ("parking nearby: 3, lifeguard post: yes"). |
| MIP-0021 | 9 | Implemented | alternative | Read tags on the beach elements (wheelchair=*, lifeguard=*) (rejected): §4 measured zero |
| MIP-0021 | 9 | Implemented | alternative | Google Places / a paid POI API (rejected): Richer, costs money |
| MIP-0021 | 9 | Implemented | alternative | Fold it into BeachFinder's query (rejected): One round trip instead of two |
| MIP-0021 | 9 | Implemented | alternative | Ask the LLM to describe facilities (rejected): Unsourced text about safety-relevant facts |
| MIP-0021 | 9 | Implemented | alternative | Do nothing (rejected): The reply keeps answering "when" and not "how do I get there and is anyone watching" |
| MIP-0022 | 1 | Implemented | summary | When an --ask / ask_ocean_question / /perguntar answer was grounded in a document under knowledge/safety/, the rendered reply ends with a fixed two-line footer, who to call (guarda- vidas / Bombeiros 193, SAMU 192) and "this does not replace professional help", appended by the rendering code after the model's text. |
| MIP-0022 | 9 | Implemented | alternative | Put the footer in the prompt ("always end safety answers with…") (rejected): The model can drop |
| MIP-0022 | 9 | Implemented | alternative | Front-matter marker per document instead of a directory (rejected): Needs a Corpus parser change |
| MIP-0022 | 9 | Implemented | alternative | Footer on every answer (rejected): Simpler, but turns the numbers into wallpaper on whale-season questions |
| MIP-0022 | 9 | Implemented | alternative | Make the corpus part of this MIP (rejected): No |
| MIP-0022 | 9 | Implemented | alternative | Do nothing (rejected): The first first-aid document ships answers with no "call 193/192" |
| MIP-0023 | 1 | Draft | summary | marola has a real product surface today, the static map (MIP-0005, live at https://h0ffmann.github.io/marola/), and a real gap: no way for an interested visitor to leave contact info for the not-yet-built Telegram bot, no plan for where a hobby launch gets seen, and no written answer for keeping the site and eventual bot maintained without babysitting. |
| MIP-0023 | 9 | Draft | alternative | Do nothing (keep asking friends by hand) (rejected): Free, but no durable signal or scale past the maintainer's own network |
| MIP-0023 | 9 | Draft | alternative | Embed a Formspree/Tally form directly on index.html (rejected): Rejected as default |
| MIP-0023 | 9 | Draft | alternative | Build a bespoke Cloudflare Worker sign-up form now (rejected): Rejected |
| MIP-0023 | 9 | Draft | alternative | Launch on Product Hunt/BetaList immediately, wait-list as the "product." Rejected (rejected): a poor audience match for "not live yet," burning a one-shot slot on the weakest form of it |
| MIP-0025 | 1 | Partially implemented | summary | Ship marola-sea-1.0: a 3B base model post-trained in three layers (marine-domain SFT, MCP tool-call SFT, safety DPO), merged and quantized to GGUF, served through Ollama exactly like today's marola-llama3.2 (finetune/README.md). |
| MIP-0025 | 9 | Partially implemented | alternative | Prompt-only via DSPy (dspy/compile_recommendation_prompt.py) (rejected): Already built, already run live |
| MIP-0025 | 9 | Partially implemented | alternative | A bigger untuned model (e.g., the 26GB dolphin-mixtral:8x7b already used in ARCHITECTURE.md §5a's DSPy compile run) (rejected): Better instruction-following observed live already |
| MIP-0025 | 9 | Partially implemented | alternative | RAG only, no fine-tuning at all (rejected): The knowledge/*.md RAG path (ask_ocean_question) already exists and stays regardless of this MIP |
| MIP-0025 | 9 | Partially implemented | alternative | Do nothing (rejected): finetune/'s Tier 2 stays "written |
| MIP-0029 | 1 | Implemented | summary | marola is already, in substance, more than a swim-time answer: MIP-0001 grounds it in bathing-water quality and a sourced sea-lore corpus, MIP-0009/0016 put tides, wind, jellyfish and water-quality marks on the map, MIP-0021/0022 add accessibility and a safety footer, and FUTURE-WORK.md §1 already argues the scoring engine should generalize past swimming to surf, dive, sailing, fishing, whale watching. |
| MIP-0029 | 9 | Implemented | alternative | Keep "swim" as the brand (rejected): Zero cost, maximum clarity |
| MIP-0029 | 9 | Implemented | alternative | "Beach intelligence." Anchors to a place rather than the sea itself (which matters offshore, for divers and sailors who never touch the beach) (rejected): narrower than "ocean," not chosen |
| MIP-0029 | 9 | Implemented | alternative | "Sea assistant." Duplicates AGENTS.md:8's existing "assistant" noun and undersells the deterministic-layer framing PHILOSOPHY.md argues for (rejected): not chosen |
| MIP-0029 | 9 | Implemented | alternative | A separate product name per use case ("marola-swim," "marola-surf") (rejected): Multiplies the branding work FUTURE-WORK.md §1 explicitly designed against (one ActivityScoring object per activity, no other code touched) |
| MIP-0029 | 9 | Implemented | alternative | Do nothing (rejected): Cheapest, and not wrong today since no second use case is built |
| MIP-0030 | 1 | Partially implemented | summary | marola shows named trails from OpenStreetMap near any beach or lake it already found for an area: named highway=path/track ways and route=hiking/foot relations within 500 m of one. |
| MIP-0030 | 9 | Partially implemented | alternative | Do nothing (rejected): Free, but it leaves facts that are already mapped off a map that exists to show what is near a beach |
| MIP-0030 | 9 | Partially implemented | alternative | Overpass per area for good (rejected): one query per build |
| MIP-0030 | 9 | Partially implemented | alternative | Overpass per state (rejected): a state-wide query goes far over [timeout:60] and against Overpass's fair use |
| MIP-0030 | 9 | Partially implemented | alternative | Ways only misses the Transcarioca, and relations only misses almost every local trail (rejected) |
| MIP-0030 | 9 | Partially implemented | alternative | ST_ReadOSM straight on the .pbf needs no extra tool, but it builds every way from its nodes over a whole region (§4.2) (rejected) |
| MIP-0030 | 9 | Partially implemented | alternative | A shell and SQL ETL in marola-oods (rejected): smaller, but it gives that repo code of its own |
| MIP-0030 | 9 | Partially implemented | alternative | The ETL in marola-site (rejected): the site would read extracts and write the lake (§2) |
| MIP-0030 | 9 | Partially implemented | alternative | Wikiloc or AllTrails tracks (§4.3) (rejected): no reuse terms |
| MIP-0031 | 1 | Partially implemented | summary | Two new WaterQualityClient implementations, IneaRjWaterQualityClient (Rio de Janeiro) and InemaBaWaterQualityClient (Bahia), extend AppConfig's Auto provider selection so beaches in those states get a real PRÓPRIA/IMPRÓPRIA verdict instead of "no data", matching what Santa Catarina already gets from ImaScWaterQualityClient. |
| MIP-0031 | 9 | Partially implemented | alternative | Do nothing (rejected): Leaves the honest "no data" state MIP-0030 confirmed is not a bug |
| MIP-0031 | 9 | Partially implemented | alternative | Brasil.IO's dataset anyway, ignoring staleness (rejected): Rejected outright (§4.1) |
| MIP-0031 | 9 | Partially implemented | alternative | Geocode automatically (a geocoding API against each point's free-text description) instead of hand-curating coordinates (rejected): Considered and rejected for v1 |
| MIP-0032 | 1 | Draft | summary | just benchmark today answers one question, "is marola's RAG better than the plain prompt?", for one model (llama3.2, local). |
| MIP-0032 | 9 | Draft | alternative | (a) An addendum to MIP-0010 (rejected): The ledger records runs |
| MIP-0032 | 9 | Draft | alternative | (b) An addendum to MIP-0025 (rejected): Its §7 is the verification of one candidate model |
| MIP-0032 | 9 | Draft | alternative | Promptfoo (FUTURE-WORK.md §10) (rejected): a YAML matrix runner over providers |
| MIP-0032 | 9 | Draft | alternative | A "from-scratch" arm (rejected): Pretraining is off the table for cost and corpus reasons (the maintainer's own conclusion) |
| MIP-0032 | 9 | Draft | alternative | Do nothing (rejected): MIP-0025 would compare three Markdown files by hand and the local-vs-hosted argument would stay prose |
| MIP-0033 | 1 | Partially implemented | summary | Release 0 is the first public-facing bundle of marola: the repo goes public, marola.dev (already public, already static) gets a real chatbot widget backed by Ollama running on the maintainer's own machine (via a Cloudflare Tunnel, with a graceful "LLM unavailable" state when the tunnel or Ollama is down), and the first fine-tuned marola model is published to Hugging Face. |
| MIP-0033 | 9 | Partially implemented | alternative | Keep the repo private, ship only the chatbot + model (rejected): Loses the outreach/transparency value the maintainer explicitly asked for ("release public") |
| MIP-0033 | 9 | Partially implemented | alternative | A hosted (Hetzner) chatbot origin instead of the maintainer's own machine (rejected): Rejected per the maintainer's own explicit choice this session ("start with something on my personal computer") and because it reintroduces the cost questions the earlier hosting research already weighed against GitHub Pages' free baseline |
| MIP-0034 | 1 | Draft | summary | Three separable things, deliberately not one pipeline. |
| MIP-0034 | 9 | Draft | alternative | Do nothing (rejected): Costs nothing and loses nothing today |
| MIP-0034 | 9 | Draft | alternative | Auto-ingest feed items into knowledge/ with an LLM summarisation + Reviewer pass (rejected): The obvious reading of "RSS feeds into the knowledge base" |
| MIP-0034 | 9 | Draft | alternative | Store feed bodies in the index with a freshness decay instead of a hard corpus/alert split (rejected): Much more work |
| MIP-0034 | 9 | Draft | alternative | A hosted aggregator (Feedly/Inoreader API) (rejected): An account, a key |
| MIP-0034 | 9 | Draft | alternative | Scrape Marinha/CHM with a headless browser past Cloudflare (rejected): Rejected |
| MIP-0034 | 9 | Draft | alternative | Only do the outbound feed, skip inbound (rejected): Genuinely viable and the cheapest subset |
| MIP-0035 | 1 | Accepted | summary | A small, stable JavaScript hook (window.marola.registerPlugin) exposed by site/static/app.js, plus a committed site/static/plugins.json manifest of known plugin script URLs that app.js loads via <script> injection on page load, the same shape Windy's own plugin model uses (a JS bundle, loaded by URL, given access to the map instance), adapted to marola's plain Leaflet map (not Windy's LeafletGL) and to a static site with no backend, which changes how a plugin gets registered (a PR to a JSON file, not an upload API) but not how it gets loaded and run (still just a <script src>). |
| MIP-0035 | 9 | Accepted | alternative | A Windy-style upload/marketplace service (rejected): Rejected for v1 |
| MIP-0035 | 9 | Accepted | alternative | Sandboxed <iframe> plugins with a postMessage API (rejected): Real isolation, but a much smaller and harder-to-design capability surface (no direct Leaflet access) for a repo with |
| MIP-0035 | 9 | Accepted | alternative | Do nothing (rejected): every new layer stays a marola PR |
| MIP-0036 | 1 | Draft | summary | Release 0 (MIP-0033) is a milestone with no audience: the repo goes public, a chatbot goes live, a model lands on Hugging Face, and by default nobody outside this repository ever finds out. |
| MIP-0036 | 9 | Draft | alternative | Do nothing / a quiet release (rejected): Push the release tag |
| MIP-0036 | 9 | Draft | alternative | Everything on launch day, simultaneously (rejected): The most literal reading of "as loud as possible" |
| MIP-0036 | 9 | Draft | alternative | One post, one channel (Reddit or LinkedIn only) (rejected): Lowest risk, lowest cost |
| MIP-0036 | 9 | Draft | alternative | Paid promotion (LinkedIn/Reddit ads) (rejected): Rejected |
| MIP-0036 | 9 | Draft | alternative | Automating the posting (rejected): Rejected on this MIP's own §5.11 grounds and MIP-0018 §4's finding that most of these platforms have no usable API for an individual anyway |
| MIP-0036 | 9 | Draft | alternative | Product Hunt / Hacker News as launch channels (rejected): Both are plausible and neither was researched here |
| MIP-0037 | 1 | Draft | summary | A service worker (site/static/sw.js) caches the app shell (index.html, app.js, style.css, vendor/leaflet.*) and the last successfully fetched board JSON, so a visitor who loses signal mid-session (a real scenario at a beach) keeps a working, if stale, map instead of a blank error. |
| MIP-0037 | 9 | Draft | alternative | Do nothing (rejected): The site already works when online |
| MIP-0037 | 9 | Draft | alternative | A full PWA framework (Workbox, etc.) pulls in a build step this repo's site/static/ explicitly avoids (MIP-0005 §9) (rejected): a ~30-line hand-written service worker covers this MIP's actual scope (two file types, one JSON endpoint) without one |
| MIP-0038 | 1 | Draft | summary | marola shows one wave height per beach-hour, from Open-Meteo's best_match model, and never says that other wave models disagree, sometimes by enough to move the hour across Swimability's own rough seas threshold. |
| MIP-0038 | 9 | Draft | alternative | Do nothing (rejected): Keeps one clean number |
| MIP-0038 | 9 | Draft | alternative | Show every model as a layer, Windy-style (rejected): Honest and free |
| MIP-0038 | 9 | Draft | alternative | Average the models into one number (rejected): Tempting and wrong |
| MIP-0038 | 9 | Draft | alternative | Score the roughest model (conservative) (rejected): Defensible for a safety product |
| MIP-0038 | 9 | Draft | alternative | Use the Ensemble API instead (rejected): No marine variables (§4.2) |
| MIP-0038 | 9 | Draft | alternative | A numeric confidence percentage ("72% confident") (rejected): A number marola cannot compute honestly from two models with no verification history |
| MIP-0039 | 1 | Draft | summary | Everything marola computes is deterministic, and then one 3B model writes a sentence over it, a second 3B model checks that sentence, and whatever comes back is printed. |
| MIP-0039 | 9 | Draft | alternative | Do nothing (rejected): The --summarize path keeps printing a contradicted jellyfish level to a swimmer |
| MIP-0039 | 9 | Draft | alternative | Make the prompt stricter (rejected): Already tried |
| MIP-0039 | 9 | Draft | alternative | Trust Reviewer and gate on its verdict (don't print when verdict=revise) (rejected): Cheaper, and it makes a 3B model the sole arbiter of whether a 3B model lied |
| MIP-0039 | 9 | Draft | alternative | An LLM-as-judge grounding metric (Ragas-style, §4.2) (rejected): The right tool for prose-vs-prose |
| MIP-0039 | 9 | Draft | alternative | Adopt llm4s's GroundingGuardrail (rejected): 154 jars for a model-backed check (MIP-0012 §4.1/§8) |
| MIP-0039 | 9 | Draft | alternative | Slot-constrained generation only (§4.1/§5.3), skipping the guard (rejected): The intuitive answer |
| MIP-0039 | 9 | Draft | alternative | A fine-tune that refuses better (MIP-0025 Layer 3, DPO) (rejected): A real complement |
| MIP-0040 | 1 | Draft | summary | marola's second LLM pass grades the first one and prints Reviewer (score 72/100, verdict: approve) to the user. |
| MIP-0040 | 9 | Draft | alternative | Do nothing (rejected): The reviewer keeps printing a number that moved 55 points on an unchanged input today |
| MIP-0040 | 9 | Draft | alternative | Set temperature 0 and stop there (rejected): Cheap, real, and it buys reliability without validity |
| MIP-0040 | 9 | Draft | alternative | Delete the reviewer (rejected): Defensible if kappa comes back at zero |
| MIP-0040 | 9 | Draft | alternative | Use a frontier model as the judge (Claude/GPT via MIP-0032's paid arm) (rejected): It would likely agree with a human more often |
| MIP-0040 | 9 | Draft | alternative | Reviewer-of-the-reviewer / debate (rejected): The intuitive scaling move |
| MIP-0040 | 9 | Draft | alternative | Adopt promptfoo or DeepEval (rejected): Both run locally against Ollama |
| MIP-0040 | 9 | Draft | alternative | Fold this into ROADMAP.md §5's proposed multi-agent eval harness (rejected): That item is about scoring per-agent contribution across summariser/reviewer/escalation with shared-run-id traces |
| MIP-0041 | 1 | Draft | summary | marola's own dev-loop rules (AGENTS.md, .claude/rules/*.md, this session's own memory files) today only change reactively, one mid-session correction at a time, with no citation trail beyond "the maintainer said so." This MIP proposes a small, human-gated pipeline, soft ingestion, that takes a book the maintainer already owns, extracts short, page-cited candidate principles with a local LLM pass, and writes them to a plain-checklist file for review, never auto-applying anything to a rule file. |
| MIP-0041 | 9 | Draft | alternative | Manual reading + manual AGENTS.md edits (status quo) (rejected): keeps full human judgment |
| MIP-0041 | 9 | Draft | alternative | Auto-apply extracted agentic-behavior principles straight into AGENTS.md (rejected): rejected outright |
| MIP-0041 | 9 | Draft | alternative | Treat the book like another knowledge/*.md RAG corpus entry (FUTURE-WORK.md §9.1) (rejected): rejected for this specific use |
| MIP-0041 | 9 | Draft | alternative | A cloud LLM instead of local Ollama (rejected): available later as an opt-in |
| MIP-0042 | 1 | Draft | summary | Freeze today's static map at marola.dev/v1/, same files, same 3-hourly build, permanently available, and start a second client at marola.dev/v2/ that computes a beach's score in the visitor's browser, at the moment they load the page, instead of reading a board baked hours earlier. |
| MIP-0043 | 1 | Implemented | summary | This MIP adds docs/4-Research-and-plans/AWESOME-AGENTIC-ENGINEERING.md, a public curated list of agentic-engineering projects (agent frameworks, MCP tooling, DSPy/prompt-compilation, critic/reviewer-pattern pipelines, spec/RFC-driven agent dev-loops) in the sindresorhus/awesome "Awesome List" convention, verified live against github.com/sindresorhus/awesome itself, not guessed from memory, plus a companion script, scripts/awesome_agentic_digest.py, that queries the real GitHub Search API for candidate repos and caches them for a human to manually curate into the doc. |
| MIP-0043 | 9 | Implemented | alternative | A GitHub Actions workflow that auto-opens a PR with digest results (rejected): rejected, this MIP's entire design principle (§5, following MIP-0041) is that nothing gets written into the curated doc unattended |
| MIP-0043 | 9 | Implemented | alternative | A --write flag that appends candidates directly to the doc (rejected): rejected, this is exactly the failure mode §8's first bullet and MIP-0041's own risk section warn about |
| MIP-0043 | 9 | Implemented | alternative | Do nothing (no such doc) (rejected): loses the community/outreach value and the discoverability the "top 10 similar repos" section provides for marola itself |
| MIP-0043 | 11 | Implemented | decided | Decided 2026-09-28: yes, in this MIP's own implementation: it's a docs/*.md file like any other, and the doc index is meant to be complete. |
| MIP-0044 | 1 | Partially implemented | summary | marola.dev is a map and nothing else: no page explains what marola is, who made it, how to reach them, what changed last week, or where the code documentation lives. |
| MIP-0044 | 9 | Partially implemented | alternative | (a) Do nothing (rejected): The map stays the whole site |
| MIP-0044 | 9 | Partially implemented | alternative | (b) A static-site generator (Hugo / Jekyll / Astro / 11ty) (rejected): Real tools, and each brings a toolchain |
| MIP-0044 | 9 | Partially implemented | alternative | (c) Client-side markdown rendering (marked/markdown-it, vendored) (rejected): Less code |
| MIP-0044 | 9 | Partially implemented | alternative | (d) GitHub Wiki as the docs surface (rejected): A separate repo |
| MIP-0044 | 9 | Partially implemented | alternative | (e) A second Pages site (or Read the Docs) for /dev/ (rejected): Another host, another privacy surface |
| MIP-0044 | 9 | Partially implemented | alternative | (f) sbt-unidoc for one merged Scala API site instead of four per-module sites (rejected): Nicer output, but another sbt plugin to keep working against Scala 3.9 |
| MIP-0044 | 9 | Partially implemented | alternative | (g) A hosted contact form (Formspree/Netlify Forms) (rejected): A third-party origin in the CSP |
| MIP-0044 | 9 | Partially implemented | alternative | (h) Skip the /support/ page entirely and ship only .github/FUNDING.yml (rejected): Genuinely defensible and the least promotional option available |
| MIP-0045 | 1 | Draft | summary | Six places in marola call (or are one step from calling) a language model for a job that is classification, ranking, matching, or extraction rather than generation. |
| MIP-0045 | 9 | Draft | alternative | Do nothing (rejected): Defensible for §5.3/§5.4 |
| MIP-0045 | 9 | Draft | alternative | A better embedder instead (nomic-embed-text, free via Ollama) (rejected): Already tried |
| MIP-0045 | 9 | Draft | alternative | sentence-transformers (rejected): §4.4 |
| MIP-0045 | 9 | Draft | alternative | An LLM-as-judge relevance filter (ask the model whether each passage is relevant) (rejected): Strictly more expensive than the thing it would replace |
| MIP-0045 | 9 | Draft | alternative | Delete the embedding path entirely (rejected): Rejected |
| MIP-0046 | 1 | Accepted | summary | Every emoji on the map is replaced by a small monochrome mark drawn from nautical- and weather-chart vernacular: a barb-derived wind shaft, the site's own wave, a sounding bulb, a whale and a jellyfish silhouette, four plain facility pictograms, defined once as SVG <symbol>s inside index.html and referenced by <use href="#…">. |
| MIP-0046 | 9 | Accepted | alternative | Do nothing (rejected): The chrome is already clean and the emoji "work" |
| MIP-0046 | 9 | Accepted | alternative | Emoji everywhere, but only "safe" ones (drop 🪼) (rejected): Keeps the platform-variance problem and the generated look |
| MIP-0046 | 9 | Accepted | alternative | Sprite the markers too (rejected): 80 <use> per render |
| MIP-0046 | 9 | Accepted | alternative | A CSS-only icon set (borders/masks) (rejected): No extra request either |
| MIP-0046 | 9 | Accepted | alternative | Redesign the page (rejected): Out of scope and against the skill's own advice |
| MIP-0047 | 1 | Draft | summary | marola's visual vocabulary becomes equation-drawn: a small set of illustrative motifs, a trochoidal swell, a right-whale silhouette, a jellyfish, a two-constituent tide curve, a rip-current streamline pair, designed by tuning real equations in Desmos's free graphing calculator, then brought home as the equations, not as the picture, and rendered by a small in-repo script into the same inline SVG <symbol> sprite MIP-0046 introduces. |
| MIP-0048 | 1 | Draft | summary | marola-sea today is SmolLM2-360M fine-tuned on marola's corpus: a proof that the pipeline works end to end, explicitly not a quality bar. |
| MIP-0048 | 9 | Draft | alternative | Do nothing (rejected): keep tiny |
| MIP-0048 | 9 | Draft | alternative | Train Qwen3.8-27B as originally asked (rejected): Hardware allows it (§4.3) |
| MIP-0048 | 9 | Draft | alternative | Llama-3.2-3B (base preset) (rejected): Works, but carries the naming obligation |
| MIP-0048 | 9 | Draft | alternative | Grow the corpus and keep the 360M model (rejected): Genuinely competitive, and cheaper |
| MIP-0048 | 9 | Draft | alternative | Skip fine-tuning (rejected): rely on RAG with a stock model |
| MIP-0049 | 1 | Draft | summary | The map page is 32 KB of hand-written ES5-style JavaScript plus 13 KB of CSS. |
| MIP-0049 | 9 | Draft | alternative | Do nothing (rejected): Entirely defensible |
| MIP-0049 | 9 | Draft | alternative | Modernise the JavaScript instead (rejected): const/let, ES modules |
| MIP-0049 | 9 | Draft | alternative | The strongest alternative to §5.2 and the one to compare against when the time comes (rejected) |
| MIP-0049 | 9 | Draft | alternative | TypeScript (rejected): Real types, but adds a build step and a second language toolchain |
| MIP-0049 | 9 | Draft | alternative | A game engine (Indigo) (rejected): §4.4 |
| MIP-0050 | 1 | Draft | summary | marola is a Brazilian product that answers in English, running a 360M English-centric model that demonstrably invents facts. |
| MIP-0050 | 9 | Draft | alternative | Do nothing (rejected): Defensible |
| MIP-0050 | 9 | Draft | alternative | A bigger general model (Llama-3.2-3B, the base preset) (rejected): Already available, already works |
| MIP-0050 | 9 | Draft | alternative | Translate at the edges (rejected): keep an English model |
| MIP-0050 | 9 | Draft | alternative | Sabiá-7B (rejected): §4.3 |
| MIP-0051 | 1 | Draft | summary | marola quotes a wave height for every beach and never says where it came from. |
| MIP-0051 | 9 | Draft | alternative | Do nothing (rejected): Rejected on §2's numbers |
| MIP-0051 | 9 | Draft | alternative | Pick the single best model and hard-code it (rejected): Cheaper, and it is what marola accidentally does today |
| MIP-0051 | 9 | Draft | alternative | Average instead of median (rejected): Rejected |
| MIP-0051 | 9 | Draft | alternative | Fold disagreement into the score (rejected): Rejected per §6 and MIP-0001's precedent |
| MIP-0051 | 9 | Draft | alternative | Go straight to running WW3/WRF (rung C first) (rejected): Rejected as the sequencing |
| MIP-0051 | 9 | Draft | alternative | Copernicus Marine (CMEMS) direct (rejected): A richer source than Open-Meteo |
| MIP-0052 | 1 | Draft | summary | MIP-0051 found that public wave models disagree by up to 6.7× at marola's sheltered beaches because they cannot resolve them. |
| MIP-0052 | 9 | Draft | alternative | Do nothing at all, don't write this MIP (rejected): Rejected |
| MIP-0052 | 9 | Draft | alternative | Adopt the attached C++/Kokkos plan as written (rejected): Rejected on §4.1 and §5 |
| MIP-0052 | 9 | Draft | alternative | Port to one of the other candidate languages instead (§4.2) (rejected): Rejected for the same reason the Kokkos plan is |
| MIP-0052 | 9 | Draft | alternative | Use MPAS for atmosphere instead of WRF (rejected): Not rejected, deferred |
| MIP-0052 | 9 | Draft | alternative | Buy the data instead of computing it (rejected): Not seriously costed here |
| MIP-0052 | 9 | Draft | alternative | AI surrogates for the source terms (rejected): Not rejected, deferred |
| MIP-0052 | 9 | Draft | alternative | NLML (Ikuyajolu et al., JGR: Machine Learning and Computation, 2026, the same authors as the 2023 OpenACC WW3 paper) emulates WW3's exact nonlinear interactions at 136× the speed of WRT, 1.04× the cost of DIA and twice DIA's accuracy, stable through a year-long integration (rejected): That is the direction the E3SM wave group actually went after OpenACC |
| MIP-0053 | 1 | Draft | summary | The question that prompted this MIP was whether a GPU model (XGBoost, a DNN, a transformer) can compete with WAVEWATCH III. |
| MIP-0053 | 9 | Draft | alternative | Do nothing (rejected): ship MIP-0051 and stop |
| MIP-0053 | 9 | Draft | alternative | Run our own 1.1 km nest (MIP-0051 §5.3 / MIP-0052) (rejected): The physically correct fix |
| MIP-0053 | 9 | Draft | alternative | Aurora 0.25° Wave (rejected): §4.1 |
| MIP-0053 | 9 | Draft | alternative | XGBoost or an LSTM instead of a linear fit (rejected): §4.2 and §4.4 |
| MIP-0053 | 9 | Draft | alternative | Fine-tune marola-sea (MIP-0025/0048) to predict wave height (rejected): Rejected |
| MIP-0053 | 9 | Draft | alternative | Buy a commercial nearshore forecast (rejected): Still uncosted, still the honest alternative to all of the above |
| MIP-0054 | 1 | Accepted | summary | marola's users are Brazilian swimmers; its beach names, bulletins and CONAMA verdicts are Portuguese; everything marola itself says, site copy, CLI output, scoring notes, sea lore, corpus, prompts, the model's summary, is English. |
| MIP-0054 | 9 | Accepted | alternative | Do nothing (rejected): Rejected by the release decision this MIP records and MIP-0050 §2's argument |
| MIP-0054 | 9 | Accepted | alternative | Translate at the edges (English model, a translation pass after it) (rejected): a second model call on the safety-relevant path |
| MIP-0054 | 9 | Accepted | alternative | Portuguese only, no toggle, wrong for a repo whose docs are English, and the catalog costs the same once it exists (rejected) |
| MIP-0054 | 9 | Accepted | alternative | Language from location, rejected (§5.5) (rejected): a denied prompt must not cost the visitor their language |
| MIP-0054 | 9 | Accepted | alternative | IP geolocation in the page, §4.5 (rejected) |
| MIP-0054 | 9 | Accepted | alternative | Regex over the English notes client-side, hard-codes English as the wire format (rejected): codes are the contract |
| MIP-0055 | 1 | Draft | summary | --ask and ask_ocean_question retrieve over knowledge/*.md through FileKnowledgeStore: a flat JSON file, every chunk scanned with cosine, one Ollama embedding call per question, and a relevance threshold that is 0.0 because the default embedder's scores carry no signal. |
| MIP-0055 | 9 | Draft | alternative | Do nothing / keyword only (MIP-0045 §5.1's TF-IDF store) (rejected): loses PT↔EN and paraphrase matching |
| MIP-0055 | 9 | Draft | alternative | Keep the JSON file, swap the embedder (rejected): MAROLA_LOCAL_EMBED_MODEL=bge-m3 today, with no code change |
| MIP-0055 | 9 | Draft | alternative | Qdrant as default (rejected): a process, a port and Docker for no gain at this scale |
| MIP-0055 | 9 | Draft | alternative | A bigger model at query time (rejected): costs on every request |
| MIP-0056 | 1 | Draft | summary | Build data/oods/: a git-versioned, everyone-can-read store of Brazilian bathing-water samples, one adapter per monitoring institute, a common schema, and DuckDB SQL views that union every state into one table. |
| MIP-0056 | 9 | Draft | alternative | Do nothing (rejected): keep the five-sample cache |
| MIP-0056 | 9 | Draft | alternative | Python (oods/ package, DuckDB + pdfplumber), the natural ETL toolchain and the more familiar one for outside contributors (rejected): Lost on PHILOSOPHY.md's own rule |
| MIP-0056 | 9 | Draft | alternative | Store the weekly PDFs as the primary, what the app parses today (rejected): 300 KB binary each |
| MIP-0056 | 9 | Draft | alternative | A separate oods repository, cleaner licence story and a smaller marola tree (rejected): but the adapters reuse marola's parsers and the map is the first consumer |
| MIP-0056 | 9 | Draft | alternative | SQLite / Delta / LFS, §4.4 (rejected) |
| MIP-0057 | 1 | Draft | summary | marola's docs/2-Building-marola/ARCHITECTURE.md §5 treats several capabilities as pluggable behind traits, each with a free local default. |
| MIP-0057 | 9 | Draft | alternative | Do nothing (stay local-only) (rejected): Loses nothing marola uses today |
| MIP-0057 | 9 | Draft | alternative | Add GCP as a backend for every integration at once (rejected): Rejected |
| MIP-0057 | 9 | Draft | alternative | Recommended path (rejected): add gcp/ as a fully opt-in backend module behind the existing core traits |
| MIP-0057 | 9 | Draft | alternative | This MIP does not commit to building even that slice, it only says that if one integration is picked first, the evidence points here (rejected) |
| MIP-0057 | 9 | Draft | alternative | A GCP-specific cost/deployment guard (guard-gcp.sh), built now, ahead of any GCP code (rejected): Rejected as premature |
| MIP-0058 | 1 | Draft | summary | marola.dev gets its first credited human artist: Daniela Vicentini (@_danielavicentini), a visual artist and art therapist whose own portfolio already includes watercolors of Campeche, the same Santa Catarina coast marola's water-quality data (MIP-0056) covers. |
| MIP-0059 | 1 | Draft | summary | Jev is a "System One" model from TypeSafe AI, launched 2026-09-15..18: it takes a block of program state plus a set of typed questions and returns typed answers, one of a fixed option set, an ordinal score, or a yes/no probability, with calibrated probabilities and a confidence, in 70-500 ms. |
| MIP-0059 | 9 | Draft | alternative | Do nothing (rejected): Strongest option today |
| MIP-0059 | 9 | Draft | alternative | Constrained decoding locally (grammar/JSON-schema-constrained Ollama) (rejected): Free, offline, no vendor |
| MIP-0059 | 9 | Draft | alternative | This is the real competitor and should be benchmarked against Jev in the bootstrap ⚠ (not evaluated here) (rejected) |
| MIP-0059 | 9 | Draft | alternative | A fine-tuned local classifier (MIP-0025 tiers) (rejected): Cheapest at runtime |
| MIP-0060 | 1 | Partially implemented | summary | alibaba/open-code-review (OCR) is an Apache-2.0 Go CLI that reviews a git diff with an LLM agent constrained by deterministic file selection, rule matching and comment positioning, and emits line-level findings as JSON. |
| MIP-0060 | 9 | Partially implemented | alternative | Upstream's Action as-is (uses: alibaba/open-code-review@<sha> + ocr_version) (rejected): Least work, and its incremental posting is better than ours |
| MIP-0060 | 9 | Partially implemented | alternative | Upstream's Action inside a container: node:24 job (their self-hosted recipe) (rejected): Better isolation, but needs Docker on the runner path and host networking to reach Ollama |
| MIP-0060 | 9 | Partially implemented | alternative | /code-review in CI (rejected): Already available, better recall |
| MIP-0060 | 9 | Partially implemented | alternative | Automatic on ready_for_review/every push (this MIP's first draft) (rejected): Dropped 2026-09-19 on the maintainer's call |
| MIP-0060 | 9 | Partially implemented | alternative | Do nothing (rejected): Reviews stay manual and late |
| MIP-0062 | 1 | Draft | summary | A ressaca (heavy surf driven onto the coast, worst when a spring tide and a southerly wind coincide) is the event that erodes Florianópolis's beaches and the one condition under which the right advice is "do not go in". |
| MIP-0062 | 9 | Draft | alternative | Scrape the Navy's warnings (rejected): Authoritative, and it refuses automated fetches |
| MIP-0062 | 9 | Draft | alternative | Use the video's per-beach counts (rejected): Unsourced until the 2010–2024 study is found |
| MIP-0062 | 9 | Draft | alternative | Sea-level-rise lore (rejected): True and irrelevant to tomorrow's swim |
| MIP-0062 | 9 | Draft | alternative | Do nothing (rejected): marola keeps calling a ressaca "rough seas" and scoring it above zero |
| MIP-0063 | 1 | Partially implemented | summary | marola already does spec-driven development: a MIP is the spec, MIP-NNNN.tasks.md is the plan, a stacked PR is the increment. |
| MIP-0063 | 9 | Partially implemented | alternative | Do nothing (rejected): ROADMAP prose and tasks.md keep working for one maintainer with one agent |
| MIP-0063 | 9 | Partially implemented | alternative | Adopt spec-kit wholesale, as brunogbv/cv does (rejected): .specify/, nine skills |
| MIP-0063 | 9 | Partially implemented | alternative | Milestones as phases (this design's first draft) (rejected): Rejected by the maintainer during brainstorming |
| MIP-0063 | 9 | Partially implemented | alternative | Epic issues as a separate object, milestones reserved for releases (rejected): The milestone is the epic |
| MIP-0063 | 9 | Partially implemented | alternative | Status as a label family (status/triage, …) instead of a board field (rejected): That is what a board is for |
| MIP-0063 | 9 | Partially implemented | alternative | A blocked label with the blocker named in prose, which is what this design carried until the maintainer's review of PR #413 asked how a contributor is supposed to know what is ready (rejected): Rejected once §4.2's native dependencies turned out to be GA on Free |
| MIP-0064 | 1 | Implemented | summary | marola.dev's Docs tab lands on a hand-built index page that links out to GitHub for every Markdown file: no rendering, no search, no diagrams. |
| MIP-0064 | 9 | Implemented | alternative | Do nothing (rejected): The index works and costs nothing |
| MIP-0064 | 9 | Implemented | alternative | Nix-native mkdocs + public kroki.io (rejected): No Docker, a three-line CI step |
| MIP-0064 | 9 | Implemented | alternative | mkdocs-material's built-in Mermaid (pymdownx.superfences, no Kroki at all) (rejected): Simplest possible diagrams |
| MIP-0064 | 9 | Implemented | alternative | A hand-written nav: (rejected): Curated ordering and MIP grouping by status |
| MIP-0064 | 9 | Implemented | alternative | Extending build_docs_index.py to render Markdown itself (rejected): A search index |
| MIP-0065 | 1 | Implemented | summary | Every gate and both deploys already run in GitHub Actions, but nine jobs are routed to the maintainer's desktop through runs-on: ${{ vars.CI_RUNNER \|\| 'self-hosted' }}. |
| MIP-0065 | 9 | Implemented | alternative | Flip CI_RUNNER=ubuntu-latest, change nothing else (rejected): One click, but both tool paths stay |
| MIP-0065 | 9 | Implemented | alternative | Nix for every job (rejected): One mechanism, but a Nix install in front of every JVM job for parity the sbt jobs already have through setup-java |
| MIP-0065 | 9 | Implemented | alternative | Keep CI_RUNNER as an escape hatch (rejected): Reopens the fork exposure whenever it is used |
| MIP-0065 | 9 | Implemented | alternative | Unregister the desktop runner entirely (rejected): Loses GPU publishing |
| MIP-0065 | 9 | Implemented | alternative | This MIP first, MIP-0064 rebased on top (rejected): Offered |
| MIP-0065 | 9 | Implemented | alternative | Cross-MIP edges by hand (issues.sh deps add) (rejected): No code, but breaks "edges come from the depends on column" and a re-projection would not know the edge exists |
| MIP-0065 | 9 | Implemented | alternative | Do nothing (rejected): CI keeps stopping when the desktop sleeps |
| MIP-0066 | 1 | Draft | summary | A contributor who has Docker and VS Code (or JetBrains, or the devcontainer CLI, or GitHub Codespaces) opens the repo in a container and gets the toolchain nix develop gives today, from the same flake.lock, without installing Nix. |
| MIP-0066 | 9 | Draft | alternative | Reuse the Dockerfile dev target (rejected): One image already exists |
| MIP-0066 | 9 | Draft | alternative | A Dockerfile without Nix (apt, sdkman, pip) (rejected): Fastest to open |
| MIP-0066 | 9 | Draft | alternative | The full default shell in the container (rejected): One shell to reason about |
| MIP-0066 | 9 | Draft | alternative | Codespaces prebuilds (rejected): The fastest Codespaces start |
| MIP-0066 | 9 | Draft | alternative | Do nothing (rejected): Nix remains the only door |
| MIP-0067 | 1 | Draft | summary | MIP-0031 shipped one INEA parser and pointed it at one hardcoded June PDF. |
| MIP-0067 | 9 | Draft | alternative | Do nothing (rejected): Rio keeps a frozen June verdict that reads as today's |
| MIP-0067 | 9 | Draft | alternative | A parser per zone (rejected): Four near-identical files that drift apart |
| MIP-0067 | 9 | Draft | alternative | Parse the historico PDFs instead (rejected): One file per zone-year and a third code format |
| MIP-0067 | 9 | Draft | alternative | URL guessing from the -N suffix or the upload month (rejected): Rejected |
| MIP-0068 | 1 | Implemented | summary | MIP-0064 put a self-hosted Kroki behind the docs site, and five Mermaid diagrams use it (CI-CD.md ×2, ARCHITECTURE.md, MIPs/README.md, the generated MIP graph). |
| MIP-0068 | 9 | Implemented | alternative | Do nothing (rejected): The ASCII keeps misaligning |
| MIP-0068 | 9 | Implemented | alternative | Mermaid only (rejected): Simplest, and everything renders on GitHub |
| MIP-0068 | 9 | Implemented | alternative | Keep both themes, render each diagram twice (styles_light/styles_dark) (rejected): Doubles every render and every legibility check |
| MIP-0068 | 9 | Implemented | alternative | Commit rendered SVGs (rejected): This would render on GitHub for every dialect |
| MIP-0068 | 9 | Implemented | alternative | kroki.io instead of self-hosted companions (rejected): No 612 MB pull |
| MIP-0068 | 9 | Implemented | alternative | Generate the task DAGs from depends on (rejected): It would be better than drawing them by hand |
| MIP-0070 | 1 | Implemented | summary | marola-dev/marola becomes an umbrella: the team layer (ways of working, MIPs, the aggregated docs site) with every code repo as a git submodule. |
| MIP-0070 | 9 | Implemented | alternative | Do nothing (rejected): It keeps the one-tree agent context |
| MIP-0070 | 9 | Implemented | alternative | Full modularity (core/local as published libraries with semver) (rejected): This is the most SRP-pure option |
| MIP-0070 | 9 | Implemented | alternative | Keep marola-dev/marola as the Scala app, with a new umbrella repo (rejected): Issues, MIP history and every #N reference would have to move or keep pointing at a code repo |
| MIP-0070 | 9 | Implemented | alternative | Require the umbrella for shared tooling (../devkit/scripts) (rejected): A single-repo clone couldn't run just pr |
| MIP-0070 | 9 | Implemented | alternative | A finer ML split now (marola-llm, marola-nlp, marola-ml, raised in discussion #522) (rejected): Today dspy/ and finetune/ are two small offline tools with one consumer |
| MIP-0070 | 9 | Implemented | alternative | A GitHub App instead of a PAT (rejected): It is scoped per repo and has no personal owner |
| MIP-0070 | 9 | Implemented | alternative | Issues all stay in the umbrella (rejected): Existing links wouldn't move |
| MIP-0070 | 9 | Implemented | alternative | Vendor devkit files into each repo with a sync bot (rejected): This is the copy-and-drift model FUTURE-WORK.md §7 already hit |
| MIP-0070 | 9 | Implemented | alternative | The umbrella owns marola.dev and pulls in the site's dist/ (rejected): URLs would be unchanged |
| MIP-0070 | 11 | Implemented | decided | Decided 2026-09-30: in #522, a fine-grained PAT; the names marola-app and marola-site, as proposed (marola-backend/marola-frontend were weighed and dropped by the team); issues per repo on the org Project. |
| MIP-0072 | 1 | Partially implemented | summary | Requesting the empty, visible org team marola-dev/gemini as a reviewer on any marola pull request starts a Gemini review. |
| MIP-0072 | 9 | Partially implemented | alternative | Gemini Code Assist on GitHub (this MIP's first draft) (rejected): needs a GCP project with billing since the consumer app's shutdown |
| MIP-0072 | 9 | Partially implemented | alternative | An agent loop (run-gemini-cli) (rejected): spent the day's quota on a single PR |
| MIP-0074 | 1 | Implemented | summary | docs.marola.dev becomes the umbrella's site. |
| MIP-0074 | 9 | Implemented | alternative | Do nothing (rejected) |
| MIP-0074 | 9 | Implemented | alternative | A separate umbrella landing page besides its README (rejected) |
| MIP-0074 | 9 | Implemented | alternative | Pinning code links to the umbrella's gitlinks while the prose tracks main (rejected) |
| MIP-0074 | 9 | Implemented | alternative | A nav plugin to order the sidebar (rejected) |
| MIP-0074 | 9 | Implemented | alternative | Renaming docs/MIPs/ to docs/6-MIPs/ in the tree (rejected) |
| MIP-0074 | 9 | Implemented | alternative | Redirects all in the 404 page (rejected) |
| MIP-0074 | 9 | Implemented | alternative | API docs committed to the default branch through PRs (rejected) |
| MIP-0074 | 9 | Implemented | alternative | API docs from release assets only (today) (rejected) |
| MIP-0074 | 9 | Implemented | alternative | The devkit as a docs-only submodule (rejected) |
| MIP-0074 | 9 | Implemented | alternative | Per-repo mkdocs.yml (rejected) |
| MIP-0075 | 1 | Draft | summary | A private Cloudflare R2 bucket, br-open-ocean-data-storage, holds marola's open ocean data as one DuckLake: tables whose rows are Parquet files under lake/, and a catalog, catalog/oods.ducklake, that records every table, file and snapshot. |
| MIP-0075 | 9 | Draft | alternative | Do nothing (marola-site#20's site-data:water/ stopgap) (rejected): keeps the last fetch |
| MIP-0075 | 9 | Draft | alternative | Supabase Postgres (this MIP's first draft, 2026-10-02) (rejected): constraints and upserts for free |
| MIP-0075 | 9 | Draft | alternative | Backblaze B2 (this MIP from 2026-10-05 to 2026-10-07) (rejected): S3-compatible and no card for the free tier |
| MIP-0075 | 9 | Draft | alternative | Cloudflare D1 (marola#667) (rejected): an HTTP query API |
| MIP-0075 | 9 | Draft | alternative | Plain Parquet with a manifest, Delta Lake, a Postgres catalog (rejected): §4.4 |
| MIP-0075 | 9 | Draft | alternative | Parquet in git (MIP-0056 §4.4) (rejected): free and reviewable |
| MIP-0076 | 1 | Implemented | summary | Two tools, split by the kind of question. |
| MIP-0076 | 5.1 | Implemented | decided | Decided 2026-10-03: the wiring lives as a generated block inside REPOS.md. |
| MIP-0076 | 5.5 | Implemented | decided | Decided 2026-10-03: every code repo sends submodule-updated on each push to main, as MIP-0070 described. |
| MIP-0076 | 9 | Implemented | alternative | Do nothing (rejected): MIP-0017's call, which was right for the monorepo |
| MIP-0076 | 9 | Implemented | alternative | Only a hand-written REPOS.md (MIP-0074 as accepted) (rejected): it answers the wiring questions |
| MIP-0076 | 9 | Implemented | alternative | Wiring injected into graphify's graph (prototyped in spike 2) (rejected): path is exact (0.2–0.35 KB) once you know the labels |
| MIP-0076 | 9 | Implemented | alternative | graphify's LLM pass over YAML and docs (rejected): about 0.6–0.7M tokens per pass |
| MIP-0076 | 9 | Implemented | alternative | graphify's MCP server (rejected): the same answers plus about 6.6 KB of schemas |
| MIP-0076 | 9 | Implemented | alternative | Per-repo graphs merged with merge-graphs (rejected): no repo-to-repo edges |
| MIP-0076 | 9 | Implemented | alternative | Committing graph output (rejected): 5.9 MB that churns on every change |
| MIP-0076 | 9 | Implemented | alternative | A PyPI/uv pin instead of nixpkgs (rejected): a second pinning mechanism beside the devkit's flake |
| MIP-0076 | 9 | Implemented | alternative | The wiring as a separate generated file instead of a block in REPOS.md (rejected): a second place for the same facts |
| MIP-0079 | 1 | Accepted | summary | Each GitHub release of the umbrella, and later of marola-app, marola-ml and marola-corpus, is archived on Zenodo with its own DOI through Zenodo's GitHub integration. |
| MIP-0079 | 5.8 | Accepted | decided | Decided 2026-10-14: a submodule pointer move never makes a release or a Zenodo version. |
| MIP-0079 | 9 | Accepted | alternative | Do nothing (rejected): A GitHub URL breaks when a repo moves and doesn't pin a version |
| MIP-0079 | 9 | Accepted | alternative | CITATION.cff alone (the first draft) (rejected): Zenodo would read it |
| MIP-0079 | 9 | Accepted | alternative | Both files kept by hand (rejected): ww3-gpu does this |
| MIP-0079 | 9 | Accepted | alternative | The devkit first (rejected): A tool, a tag and a pin bump before one record exists |
| MIP-0079 | 9 | Accepted | alternative | Software Heritage alone (rejected): It archives code but gives no DOI |
| MIP-0080 | 1 | Draft | summary | Every byte-identical copy of a third-party Claude Code skill gets a row in a per-repo skills.lock: the upstream repo, path and commit, a git blob sha per file, the licence, and an optional patch for a local edit. |
| MIP-0080 | 9 | Draft | alternative | Do nothing (the drift report alone) (rejected): it found R5 and R6 and nothing moved |
| MIP-0080 | 9 | Draft | alternative | A blocking "must be latest" CI check (rejected): every upstream push breaks every consumer's main at once |
| MIP-0080 | 9 | Draft | alternative | Install upstreams as plugins from their marketplaces (rejected): cloud sessions do not install project-enabled external plugins |
| MIP-0080 | 9 | Draft | alternative | marola-skills as an umbrella submodule holding the copies (rejected): Claude Code loads project skills only from the started repo's .claude/skills/ and its parents |
| MIP-0080 | 9 | Draft | alternative | git subtree (rejected): it pins a commit |
| MIP-0080 | 9 | Draft | alternative | npx skills or a similar installer (rejected): no documented ref pinning |
| MIP-0080 | 9 | Draft | alternative | The devkit sync bot MIP-0070 §9 rejected (rejected): that was a bot overwriting devkit files in every repo |
| MIP-0081 | 1 | Accepted | summary | marola-sea is published to Hugging Face with no standard benchmark score, because running a harness needs GPUs marola does not have. |
| MIP-0081 | 9 | Accepted | alternative | Take one provider's scores as they come (rejected): Fastest, but the numbers would be unreproducible and the relationship exclusive in practice |
| MIP-0081 | 9 | Accepted | alternative | Rent GPUs and run everything locally (rejected): Reproducible, but paid every run |
| MIP-0081 | 9 | Accepted | alternative | The Hugging Face Open LLM Leaderboard (rejected): Retired in 2025 |
| MIP-0083 | 1 | Accepted | summary | marola-app gains an experiment sbt module, written in Kyo, that every 4 hours (adjustable) samples 10 m wind and 2 m temperature forecasts at a registry of sampling points. |
| MIP-0083 | 9 | Accepted | alternative | Do nothing / #723 alone (rejected): stale at the next model upgrade |
| MIP-0083 | 9 | Accepted | alternative | A new repo (marola-eval) in Scala, Rust or Haskell (rejected): proposed earlier on 2026-10-09 and withdrawn by the owner |
| MIP-0083 | 9 | Accepted | alternative | GCS for MLflow, with WIF and Besom (rejected): a second cloud for the one bucket B2 already provides |
| MIP-0083 | 9 | Accepted | alternative | An always-on MLflow (rejected): Phase 2 (MIP-0057) |
| MIP-0083 | 9 | Accepted | alternative | GRIB from the originals (rejected): §4.1 |
| MIP-0083 | 9 | Accepted | alternative | kyo-flow for durability (rejected): §4.9 |
| MIP-0083 | 9 | Accepted | alternative | A stacked blend of the providers for marola's forecast (the first version of §5.11) (rejected): its errors are a weighted average of the providers' |
| MIP-0083 | 9 | Accepted | alternative | A regional model of marola's own (WRF) (rejected): paid compute every cycle |
| MIP-0083 | 9 | Accepted | alternative | A learned post-processor (gradient boosting, a neural net) on the providers' output (rejected): more parameters than 2.5 years of 6-hourly pairs support |
| MIP-0084 | 1 | Implemented | summary | MIP-0076 built the routing sources, but a session reaches them only if the person installed the devkit plugin, entered nix develop, initialised submodules and rebuilt the graph. |
| MIP-0084 | 9 | Implemented | alternative | Do nothing (rejected): the plugin and nix develop stay prerequisites |
| MIP-0084 | 9 | Implemented | alternative | Build locally everywhere (a portable graph, rebuilt on query) (rejected): always matches the working tree |
| MIP-0084 | 9 | Implemented | alternative | Commit the graph (rejected): MIP-0076 rejected it |
| MIP-0084 | 9 | Implemented | alternative | The bundle as a release asset (rejected): mints Zenodo versions (§5.3) |
| MIP-0084 | 9 | Implemented | alternative | An Actions artifact (rejected): expires, and downloading it needs a token |
| MIP-0084 | 9 | Implemented | alternative | docs.marola.dev (rejected): outside the cloud sessions' default network |
| MIP-0084 | 9 | Implemented | alternative | The opt-out marker elsewhere (rejected): the committed settings turn the plugin off for everyone who pulls |
| MIP-0084 | 9 | Implemented | alternative | Asking later (after the first request, or only when a plugin feature is needed) or a notice instead of a question (rejected): the first misses the hooks on the first task and gets skimmed |
| MIP-0084 | 9 | Implemented | alternative | graphify's MCP server for cloud sessions (rejected): plugins and their MCP servers do not load there |
| MIP-0084 | 11 | Implemented | decided | Decided 2026-10-10: either answer is fine. |
| MIP-0084 | 11 | Implemented | decided | Decided 2026-10-10: nice to have, not a blocker: the umbrella is the workspace most sessions start in. |
| MIP-0085 | 1 | Implemented | summary | MIP-0084 gives every session a bundle and a route tool, holding only the code graph and the wiring. |
| MIP-0085 | 5.4 | Implemented | decided | Decided 2026-10-20: no committed DOC-CODE.md, since committing it meant pointer-sync.sh building the code graph on every pointer move, a --check against a bundle graph already behind the pointers, and one more file merged unread (§8). |
| MIP-0085 | 5.7 | Implemented | decided | Decided 2026-10-20: BM25 ships, inside the bundle; no embedding (the meaning spike). |
| MIP-0085 | 9 | Implemented | alternative | Do nothing (rejected): route answers symbols and wiring |
| MIP-0085 | 9 | Implemented | alternative | graphify's Markdown pass for doc↔code (rejected): tried |
| MIP-0085 | 9 | Implemented | alternative | graphify's LLM pass (rejected): about 0.6–0.7M input tokens per run |
| MIP-0085 | 9 | Implemented | alternative | Ollama embeddings (rejected): a daemon and a ~300 MB pull per machine |
| MIP-0085 | 9 | Implemented | alternative | A full embedding model through ONNX Runtime (rejected): better vectors, but a large native dependency on every machine that queries |
| MIP-0085 | 9 | Implemented | alternative | mkdocs' search index (already built for docs.marola.dev) (rejected): full-text over docs only |
| MIP-0085 | 9 | Implemented | alternative | One combined graph (rejected): docs in the code graph was exactly what MIP-0076's revision undid |
| MIP-0085 | 11 | Implemented | decided | Decided 2026-10-20: bundle only (§5.4), the maintainer's call in task 10, once committing it turned out to need a graph build in every pointer-sync run. |
| MIP-0085 | Meaning spike (task 7), 2026-10-20 | Implemented | decided | Decided 2026-10-20: BM25 ships as route query --meaning, and no embedding does. |
| MIP-0086 | 1 | Implemented | summary | Every GitHub write the org's automation makes moves to one of two org-owned GitHub Apps. |
| MIP-0086 | 9 | Implemented | alternative | One App per need (#765's seven plus #740's) (rejected): smallest reach per key |
| MIP-0086 | 9 | Implemented | alternative | Three Apps, marola-bump kept apart (rejected): the Workflows key would sit in marola-devkit only |
| MIP-0086 | 9 | Implemented | alternative | One App for everything (rejected): a key readable by every repo would merge into every repo |
| MIP-0086 | 9 | Implemented | alternative | An hourly git ls-remote poll instead of notify-umbrella (rejected): no notify credential at all |
| MIP-0086 | 9 | Implemented | alternative | Do nothing (rejected): PRs keep appearing as the maintainer's and the PATs lapse within a year |
| MIP-0087 | 1 | Draft | summary | marola is worked on from two Claude Code surfaces: the CLI on a contributor's machine (in ai-jail, inside nix develop, one repo per session) and a Claude Project on claude.ai/code (a coordinator that starts one cloud thread per task, every marola repo cloned side by side). |
| MIP-0087 | 9 | Draft | alternative | Do nothing (rejected): Threads keep assuming the CLI's setup |
| MIP-0087 | 9 | Draft | alternative | Fold it into AGENT-SKILLS.md (rejected): That page is about skills |
| MIP-0087 | 9 | Draft | alternative | Make Project threads start inside one repo so its settings and hooks load (rejected): Not a setting a Project exposes today (the container clones every configured repo under /home/user) |
| MIP-0087 | 9 | Draft | alternative | Vendor superpowers into each repo's .claude/skills/ (rejected): Fifteen skills times six repos |
| MIP-0091 | 1 | Accepted | summary | marola will quote one wind and wave forecast for each beach. |
| MIP-0091 | 9 | Accepted | alternative | Do nothing, rank only as OWB does (rejected): marola must still select one number for each beach |
| MIP-0091 | 9 | Accepted | alternative | The forecaster first, trained on simulations (rejected): A bandit tuned on synthetic rewards learns the simulator |
| MIP-0091 | 9 | Accepted | alternative | A marola-eval repository (rejected): The owner withdrew it on 2026-10-09 (MIP-0083 §9) |
| MIP-0091 | 9 | Accepted | alternative | A marola-forecaster code repository now (rejected): If the forecaster is in its own code repository now |
| MIP-0091 | 9 | Accepted | alternative | The forecaster inside experiment (rejected): This alternative loses the direction of R1 that the build enforces |
| MIP-0091 | 9 | Accepted | alternative | The bandit in Python (marola-ml) (rejected): If the bandit is in Python |
| MIP-0091 | 9 | Accepted | alternative | A blend of the arms (rejected): A blend averages the errors of the arms and hides which arm is quoted (MIP-0083 §9, §5.11) |
| MIP-0091 | 9 | Accepted | alternative | One bandit over every arm (rejected): This alternative discards the losses of fetched arms that marola observes in all cases (policy note §4.5.1) |
| MIP-0091 | 9 | Accepted | alternative | Live epsilon-greedy (rejected): This alternative shows swimmers a forecast selected at random (R11) |