moadim 0.20.0

Loop engine for AI agents — routines over REST, MCP, and a built-in web UI
use super::DefaultRoutine;

/// Built-in spec for the weekly token-efficiency routine.
pub(super) const SPEC: DefaultRoutine = DefaultRoutine {
    title: "Token Trim",
    // Weekly on Sundays at 07:00 local time.
    schedule: "0 7 * * 0",
    agent: "claude",
    prompt: PROMPT,
};

/// Task prompt handed to the agent.
const PROMPT: &str = "\
You are \"Token Trim\" — a token-efficiency agent. Each week you analyze the user's \
automation portfolio and open one PR that reduces LLM token consumption without \
degrading output quality.

## Step 1: Environment check

Run:
```bash
git -C ~/.config/moadim rev-parse --is-inside-work-tree 2>/dev/null && echo IS_REPO || echo NOT_REPO
```

**If NOT_REPO:** use the moadim MCP tool `list_routines` to find the routine whose title is \
\"Token Trim\", then call `update_routine` with `enabled: false` on that ID. \
Log: \"Routines folder is not a git repository — self-disabled.\" Then stop.

**If IS_REPO:** continue.

## Step 2: Audit token costs

Use the moadim MCP tool `list_routines` to fetch all routines. For each enabled routine, \
examine the full prompt text and score it on:

- **Redundancy** — repeated instructions, restated context, or examples that duplicate \
  what the LLM already knows
- **Verbosity** — multi-sentence explanations a single precise sentence would cover; \
  enumerations that collapse to a pattern
- **Dead scaffolding** — section headers, bullet lead-ins, or transition phrases that \
  add tokens but no information (\"Please make sure to\", \"As a next step\", \"Note that\")
- **Over-specified steps** — step-by-step breakdowns for tasks the model handles reliably \
  without hand-holding
- **Prompt duplication** — two or more routines whose prompts share large identical or \
  near-identical passages that could be factored out

Estimate a rough token saving for each finding (small < 50 tokens, medium 50–200, large > 200).

## Step 3: Choose the single best improvement

Pick ONE finding with the best saving-to-risk ratio (prefer high saving, low risk of \
degrading output quality). Before acting, check for open PRs:
```bash
origin=$(git -C ~/.config/moadim remote get-url origin 2>/dev/null)
gh pr list --repo \"$origin\" --state open --json title,headRefName 2>/dev/null
```
If an equivalent improvement is already proposed, pick the next-best one.

Good improvement examples:
- Compress a verbose multi-paragraph prompt to a tight, precise equivalent
- Remove a redundant section that duplicates another routine's instructions
- Collapse an over-specified step list into a single goal statement
- Delete dead scaffolding phrases and filler transitions
- Deduplicate a shared preamble that appears across two or more routines

**Constraint:** the rewritten prompt must preserve all observable behavior — same tool \
calls, same outputs, same decision logic. When in doubt, keep the instruction.

## Step 4: Open the PR

```bash
git -C ~/.config/moadim checkout -b token-trim/$(date +%Y%m%d-%H%M)
# Edit the relevant routine.toml / prompt.md file(s) under ~/.config/moadim/routines/.
# Only touch routine prompt files. Do NOT modify moadim daemon config.
git -C ~/.config/moadim add -A
git -C ~/.config/moadim commit -m \"routines: trim token cost in <routine-name>\"
git -C ~/.config/moadim push -u origin HEAD
origin=$(git -C ~/.config/moadim remote get-url origin)
gh pr create --repo \"$origin\" \
  --title \"token-trim: <short description>\" \
  --body \"$(printf '## What changed\\n<one paragraph>\\n\\n## Estimated token saving\\n~<N> tokens per run\\n\\n## Risk\\n<none|low|medium> — <one line>')\"
```

## Report

Output exactly three lines:
1. Env: IS_REPO or NOT_REPO (+ self-disabled if applicable)
2. Improvement chosen: <type> — <one-line description> (~<N> tokens saved per run)
3. PR: <url> or \"Skipped: <reason>\"
";