0% 5h quota used · resets in 2h live · 08/09/2026 12:17 CEST

_global/monthly-report

Monthly "what Country OS did" report for every workspace, published as a Google Doc per country plus one cross-country doc. Journal-derived, no traffic or market analysis.

Monthly report — all workspaces

Once a month, tell the company what Country OS actually did last month. One document per workspace, each with a stable link that is updated in place — people paste those links into Chat and keep them, so the link must never change.

Audience: Selectra colleagues across countries, most of whom have never opened this repo. Write in English. Five minutes of reading per document, maximum.

Scope discipline: this report describes what the system did. It is not a business review — no Search Console numbers, no competitor scan, no market analysis. tn:business-review owns that, separately. Your sources are the run journals, the cost ledger and GitHub, all delivered by month-stats.

Steps

  1. Pick the month. Default: the previous calendar month. A trigger may name a different one — then use that.

  2. List the workspaces. month-stats --list — every directory under countries/ with activity, including any country added since this skill was written. Report on all of them, including _global.

  3. Per workspace, get the data:

    month-stats --workspace <ws> --month <YYYY-MM>
    

    It returns: the ledger table (authoritative run counts, errors, minutes, API-equivalent cost), pull requests with GitHub's current state, approval requests, and every journal entry of that month grouped by the task it belongs to. Read all of it before writing anything.

    Four things in that output need care:

    • Group by task or campaign, never by run or by day. A workspace like de produces 50+ journal entries a month from one task. "46 runs completed the 900-operator seed list on 2026-07-25" is the report; a list of runs is not.
    • Journal state is stale, GitHub's is not. Entries are written when a run ends, so they say "opened draft PR #x" and never learn it was merged later. Always use the state month-stats reports. If a PR opened in this month was merged in the next one, say exactly that.
    • Separate autonomous work from interactive work. Entries grouped under "no scheduled run — interactive/human work" were written during a hands-on session with a person, not by a scheduled run. Never present those as something the system did on its own. Give them their own short section ("Done with a human in the loop") so the autonomous record stays honest.
    • Attributions marked inferred or ambiguous are the tool's best guess. If such an entry carries real weight in your summary, say the attribution is uncertain rather than asserting it.
  4. Write one fragment per workspace to reports/monthly/<ws>/<YYYY-MM>.html — body HTML only, in this shape:

    <h3>In one line</h3>
    <p>The single sentence someone should remember.</p>
    
    <h3>Shipped</h3>
    <ul><li>What landed, with the PR and its real state.</li></ul>
    
    <h3>In progress / waiting on a human</h3>
    <ul><li>Open PRs, pending approvals, and who is blocked on what.</li></ul>
    
    <h3>Problems</h3>
    <ul><li>Failed runs, blockers, anything that needs a decision. Omit if none.</li></ul>
    
    <h3>Done with a human in the loop</h3>
    <ul><li>Only if the month had interactive entries. Omit otherwise.</li></ul>
    
    <h3>Cost</h3>
    <p>Runs, errors and API-equivalent cost, from the ledger table.</p>
    

    Rules for the fragment, enforced by render-monthly:

    • No <h1> or <h2> — the document title and the month heading are added for you. Start at <h3>.
    • Allowed tags only: h3 h4 p ul ol li table thead tbody tr th td strong em b i a code br hr. No <style>, no <script>, no full HTML document. Google Docs discards everything else.
    • Never edit a previous month's fragment. Past months are immutable; you only ever add this month's file.

    Write nothing you cannot point at in the month-stats output. If it reported a GitHub lookup problem, or a workspace had zero runs, say so plainly — an empty month is a legitimate result and hiding it is not.

  5. Assemble and publish. For each workspace:

    render-monthly --workspace <ws>
    gdoc-publish --key monthly-<ws> --file countries/_global/reports/monthly/<ws>.html
    

    Do not pass --title: gdoc-publish takes the document name from the <h1> that render-monthly wrote, so the two always agree.

    render-monthly fails loudly on a bad fragment — fix the fragment, never work around the check. gdoc-publish reuses the document recorded under its --key, so the link stays the same every month; --key must therefore be exactly monthly-<ws>. If it warns that a document was recreated with a new link, or that domain access could not be granted, put that warning in your final message — a report nobody can open is not published.

  6. Final message. Its first line becomes the Google Chat headline and the rest lands as a threaded reply, so the first line carries the whole month at a glance and nothing else.

    Write the first line in exactly this shape — totals across all workspaces, no prose, no preamble, no country names:

    Monthly report July 2026 — 3 workspaces, 120 ledger runs, ~$294 API-equiv
    

    It must fit 110 characters; past that Chat cuts it mid-sentence with […], which is why nothing but the numbers belongs there. Substitute the real month and the real totals, and keep the words workspaces, ledger runs and API-equiv — readers scan for them.

    Then one line per workspace: its name, the single number that matters most for it, and the link.

    Tunisia (8 runs, 2 PRs merged): <link>
    Germany (112 runs, seed list completed): <link>
    Cross-country (13 runs, 3 Sentry fixes): <link>
    

    Add any warning from step 5 at the end.

Notes

  • Publishing to Drive is within autonomous. This task performs no outward action on any Selectra site or repository; it writes a report to the Country OS Reports Shared Drive, the same way every autonomous task already reports to Google Chat.
  • Documents are owned by the system@country-os service account and readable by everyone at selectra.info. They are generated output: the header tells readers not to edit them, because the next run overwrites the file.
  • Claude Artifacts were the original plan for these pages and are not usable — the Artifact tool does not exist in headless runs. See ROADMAP.