Duty Loop Runner
Run one bounded worker turn. Do not build a new framework during a run.
Workflow
-
Read
blueprints/<loop-id>/BLUEPRINT.md. -
Generate the context packet:
npm run context -- <loop-id> --slot <slot> --trigger <trigger> -
Inspect:
- role and human gates;
- current facts and source health;
- recent runs;
- memory and open gates.
-
Decide exactly one outcome:
quiet: no material change or source is stale;notify: material change worth attention;ask: human decision required;act: bounded low-risk action already allowed byBLUEPRINT.md.
-
If source data is stale or failed, say so. Do not invent current facts.
-
If a human gate is required, ask one concrete question and do not cross the gate.
-
Write back one row:
npm run writeback -- <loop-id> --decision <quiet|notify|ask|act> --summary "<short summary>"Add
--material-change,--gate "<question>", or--next "<next step>"when applicable.
Judgment Guidance
- A changed field is not automatically a material change.
- A material change is not automatically an urgent notification.
- A notification must explain why now is worth attention.
- Prefer quiet over noisy uncertainty.
- Prefer asking a concrete gate over taking an irreversible action.