A report you have to chase and a report with round numbers from memory are equally useless. Mila runs every week in one rhythm: on Monday a plan with each member of the team, on Friday plan-vs-fact as one slideshow post. Numbers come only from her files; when a file is missing, the slide says “no data”, not zero.
For an owner who wants to see the week of his business in one post, without asking for it.
The rhythm is written in the canon, a rules file shared by all Milas. The report day is Friday by default; the owner moves it to Saturday or Sunday with one sentence. WEEK-RHYTHM.md:10-16
Mila writes to each member of the team: what she saw of their week (3–5 lines: tasks, done, arrangements), what she may have missed (calls, meetings, work outside the chats) and the three main things for this week.
WEEK-RHYTHM.md:20-24The state of the business on Monday: key numbers and what is on fire. The week plan by person: 1–3 things each, with a result you can check. The shift on the quarter goals. The owner gets the summary; the file is WEEK.md in Mila’s home.
WEEK-RHYTHM.md:26-32The owner gets a report on the company. Each member of the team gets their own result of the week. The skill plan-fakt sends it as one slideshow post.
WEEK-RHYTHM.md:36-38Eight blocks. When a block has no data, the report says so. WEEK-RHYTHM.md:40-51
| Block | What is inside |
|---|---|
| Plan → fact | Monday’s tasks: ✅ done · 🟡 partly · ❌ not done, each with evidence you can open |
| Carried over | What moves to next week and why, one line each |
| People | Each person’s activity: done, taken, in the chats; facts only, no grades |
| Money | Income and spending of the week, if there were any and Mila can see them |
| KPI | 3–5 key numbers of the company, week to week (Δ) |
| OKR | The shift on the quarter goals |
| Ideas | What new came up during the week |
| Step | One recommendation from Mila for next week |
Each member of the team gets their own result: their plan, their fact, what carries over, one win said out loud and one hint for next week. Only their data: other people’s results are not shown to them. Naming wins out loud is law 8 of the constitution. WEEK-RHYTHM.md:53 CONSTITUTION.md:22
The same Friday adds two more lines: the share of handed-over work that got a reply from the person, and one new skill Mila could learn — the one closest to the owner’s goal. obratnaya-svyaz:41-45 mila-update:92-96
collect.py reads the week plan WEEK.md, the day boards from Monday to Friday and MONEY.md — only if Mila keeps money. No file, no money slide. A task carried from Monday to Tuesday counts once: it keeps its number. On the day board a task is closed only with evidence. collect.py:6-10 plan-fakt:10-15 collect.py:66-76 pult-dnya:10 pult-dnya:24
An empty week is not a zero: a zero reads as a fact, so the tile says “no data”. collect.py:124-127 test_plan_fakt.py:27-28 CONSTITUTION.md:16
WEEK.md is free text, so before a slide a card number becomes ****1234, and phone numbers and e-mails become short labels. A long number after № and a chat id are not taken for a phone. collect.py:16-20 collect.py:47-59 test_plan_fakt.py:29-32
make_slides.py draws the slides with any Chromium it finds. Square only: a slideshow crops 4:5 at the top and bottom. Mila rewrites the draft in her own words: the cover is the conclusion of the week in one phrase, 3–5 lines per slide, and she opens every slide before sending. make_slides.py:2-8 make_slides.py:107-108 plan-fakt:17-19
send_slideshow.py sends 2–10 slides as one post with the text in sections. A reply to it carries the buttons “❓ Questions (N)” and “✅ Got it”, and the post is pinned. The bot token does not appear in the output, even on an error. Afterwards a line “Plan-vs-fact, week N” goes to WEEK.md, and Monday’s plan starts from it. send_slideshow.py:1-8 send_slideshow.py:48-49 plan-fakt:21-25 send_slideshow.py:72 test_plan_fakt.py:62-64 plan-fakt:27-28
The skill test: 17 checks out of 17 on commit 7ac7ab0, without network or browser. test_plan_fakt.py:1-3 CHANGELOG.md:112
KPI are the key numbers that show the business is alive and growing: requests, sales, revenue, replies to clients, posts. Each company has its own 3–5 numbers; they are chosen with the owner on the first Monday. WEEK-RHYTHM.md:57
OKR are objectives and key results, a practice of Intel and Google. Once a quarter the owner sets 1–3 goals in words, each with 2–4 measurable results. Every Friday Mila shows by how many percent each result has moved. Reaching 70 % is normal: OKR are set with headroom. WEEK-RHYTHM.md:59
The difference: KPI say how the business lives, OKR say where it is going this quarter. WEEK-RHYTHM.md:61
The canon comes to every Mila with an update. When it changes, the update plan shows a separate line “read before Update” and rates the risk no lower than medium. update.py:814-815 update.py:864
| File | What it does |
|---|---|
| canon/WEEK-RHYTHM.md | the rhythm: Monday, Friday, KPI and OKR, boundaries |
| skills/plan-fakt/SKILL.md | the Friday plan-vs-fact skill: facts, slides, sending |
| plan-fakt/scripts/collect.py | a draft of the week from WEEK.md, day boards and MONEY.md; personal data masked |
| plan-fakt/scripts/make_slides.py | square slides 1080×1080 |
| plan-fakt/scripts/send_slideshow.py | one slideshow post; the token is never printed |
| plan-fakt/post-template.html | the post text in sections |
| plan-fakt/test_plan_fakt.py | 17 checks without network or browser |
| skills/pult-dnya/SKILL.md | the day board: where “done” with evidence comes from |
| skills/raspisanie/SKILL.md | a schedule that survives a restart |
The kit is open: skills, hooks, tools and templates. Every pull request is read by a person and by Mila Quality.
Facts on this page: github.com/shakhruz/mila-agent (main, 7ac7ab0), checked 30 Oct 2026. The chat in the phone is an illustration. “Mila”, “MILAGPT” and the logo are trademarks of MILAGPT.