RoutineOSBeta
Concepts

How RoutineOS maps to Rails, Django and Laravel

Web frameworks gave apps a standard shape. RoutineOS gives Claude routines one, and borrows the idea, not the code. This map shows which RoutineOS part matches which framework idea, and where the match stops.

an analogy, ours
The map

Models, jobs, views and the rest

Only the Rails, Django model and Laravel queued jobs and scheduling mappings come from the repo's references/rails-map.md. The other cells are our own analogy, unchecked, and not a claim made by any of those frameworks.

RoutineOSRailsDjangoLaravel
Routine typeApp templateProject templateStarter kit
Records and the storeModels, databaseModels, ORMEloquent
SettingsConfig, credentialsSettingsConfig, .env
Producers (the prompt or a script)JobsManagement commandsQueued jobs
Gatesbefore_action, approvalsPermissions, admin actionsPolicies, gates
The DeskViewsTemplatesBlade views
The command linerails g, consolemanage.pyartisan

In RoutineOS terms: a Desk is the view, and a gate is the check before an action leaves. A routine's schedule is a cron in UTC, and its settings and connectors hold the config. Connectors hold authentication, so no secrets go in the store or the prompt.

Where it holds

Convention over configuration

  • Conventions. A routine has a routine.toml, a prompt, typed settings and a README, the way an app has config, routes and views.
  • Generators. routineos.py new scaffolds the same files every time.
  • A linter as the guard rail. It fails on a setting with no default, a schedule faster than hourly, or a prompt without the untrusted-data clause.
  • Checks before actions. A gate works like a before_action: a pending record, then a later run resumes.

For the console idea, lint and doctor check a routine and your setup. A dry-run mode is planned, not built.

Generators and checks are the part a Rails person finds familiar first. Try routineos.py new my-watch --from-template watch.

Where it breaks

Five places the analogy stops

  • No schema enforcement. The artifact database has no joins and does not validate shape, so the prompt and lint carry the schema.
  • No migrations tool. Version a record shape with a schema field and have the prompt tolerate older shapes.
  • No long-running process. Every run is a fresh sandbox with no in-memory state and no documented overlap guard, so design reruns to be safe to repeat.
  • Coarse scheduling. One hour is the minimum interval, in UTC.
  • The runtime is a model. A run can misread a page, so health records compare parsed counts with claimed counts.
A moving baseClaude scheduled tasks are a research preview and may change. A framework on top inherits that.

RoutineOS does not borrow an ORM, migrations, a package ecosystem or a server, and does not claim parity with any of them. For the other tools people weigh it against, see compare.

Try the generator

Install the plugin in Claude Code and scaffold a routine with new. Then read the folder it writes.