Two things landed since 08-31, both verified live rather than trusting the merges. git log origin/develop --since=2026-08-31 on TN paths → one commit (6222c3da04f, PR #18264, the local faq-schema component); on the shared files behind TN-002 (app/Support/FaqAn…
Tunisia
Workspace countries/tn/ — a market, with its own goals and its own money.
Guardrails
countries/tn/country.yaml — every run is admitted against these- On exceed
- pause the next run is refused; the one in flight is never killed, and it lifts by itself at the period boundary
- A task may declare
- autonomy autonomouspr · at most 140 turns · at most 90 min
- Per-run ceiling
- $8.00 — alert only, a finished run is already spent
- Warns at
- 80%
- Refused so far
- nothing has been refused
- Declared, not enforced
- 2 scope path(s) · 2 web host(s)
Read country.yaml
# Tunisia. Field reference: ../COUNTRY.md. Falls back to ../defaults.yaml.
identity:
name: Tunisia
domain: tunisie-electricite.com
language: fr-TN
guardrails:
autonomy_allowed: [autonomous, pr] # content ships as draft PRs; never `approval`
turns_max: 140 # the `content` task is the ceiling-setter
minutes_max: 90
budget:
# Work ceilings, in reference dollars — unchanged: tn's measured ratio to
# the old `cost_usd` numbers is 0.97, so they keep their meaning.
run_max_usd: 8
daily_max_usd: 10
monthly_max_usd: 60
monthly_spend_max_usd: 10 # real money, and the first country to spend any
runs_per_day: 8
# The one country set to actually stop.
on_exceed: pause
# Inert until phase 3 — mirrors the "Stay in scope" rule in CLAUDE.md.
scope:
- sites/tunisie-electricite.com/**
- departments/tunisia-energy/**
web: { allow: [steg.com.tn, tunisie-electricite.com] }
Tasks
the whole fleet| Task | Does | Policy | Next | Last 12 | Spent |
|---|---|---|---|---|---|
| seo-audit | Weekly SEO and health audit of tunisie-electricite.com — scores every page, checks the live site, reports top actions. Read-only on the site; chains tn:seo-fixes when it finds 2+ mechanical fixes. | autonomous | in 6d | $15.92 | |
| seo-fixes | Implement the mechanical fixes from the latest SEO audit report on a branch. On-demand companion to seo-audit. | pr | on demand | $13.75 | |
| content-freshness | Monthly data-accuracy pass — verify STEG tariffs, contacts and agency data against official sources and prepare the corrections. | pr | in 23d | $11.11 | |
| business-review | Monthly "state of the country" memo for HQ — traffic, competitive landscape, opportunities, and what Country OS did this month. | autonomous | in 7d | $1.57 | |
| ctr-optimizer | Convert impressions the site already earns into clicks — rewrite titles, meta descriptions and rich-result markup on pages that rank well but earn few clicks, and grade the previous run's pages 28 days on. | pr | in 12d | $1.56 | |
| decisions-escalate | Announce decisions to Google Chat and defects to GitHub the day they are opened, and re-raise anything still unanswered after 30 days. Deterministic script, no LLM. | autonomous | in 20h | $0 | |
| decisions-answer | Record a human answer to an open decision (TN-001, TN-002…) in decisions.md — approve, reject, or note a conditional reply that arrived by Google Chat. | autonomous | on demand | $0.91 | |
| content | Write one new page a month on demand the site already receives but does not serve — chosen from Search Console, never from taste. Ships as a draft PR. | pr | in 27d | $4.50 |
Spend by month
The brief this workspace runs on
countries/tn/CLAUDE.md · every run reads it firstRead CLAUDE.md
Country OS — Tunisia
You manage Selectra's Tunisia activity. Current scope: tunisie-electricite.com.
The business
The site is an informational/SEO site (French, fr-TN audience) about electricity and gas in Tunisia, centered on STEG (Société Tunisienne de l'Électricité et du Gaz), the state monopoly: tariffs, procedures (raccordement, facture, service client), power outages, and a directory of STEG agencies across 24 governorates and 261 delegations. There is no supplier competition in Tunisia — the value is being the best independent source about STEG and energy in Tunisia.
Where things live
The site is part of the CMS monorepo (Laravel, file-based content, no admin UI):
- Pages:
sites/tunisie-electricite.com/pages/(~18 static Blade pages + dynamic templates underannuaire/andcoupures/) - Site config:
sites/tunisie-electricite.com/config/cms.php,routes/web.php - Shared data:
departments/tunisia-energy/data/—governorates.json,steg_agencies.json,outage-*.php - The monorepo has its own Claude skills (
/seo-audit,/improve,/article,/boussole,/save,/publish…). Use them when working there.
For search traffic, use Country OS's own gsc CLI (gsc --help), not the
monorepo's /gsc-clicks skill or its scripts/gsc_*.py: those need a Python
runtime this image does not have, and belong to a repo that can rename them
without warning. gsc works from any workspace, including country.
Hard rules
- Never invent factual data. Tariffs, phone numbers, addresses, procedures must come from an authoritative source (steg.com.tn first) and be cited in the commit or proposal. If a fact cannot be verified, flag it instead of guessing.
- All content changes go through git branches named
countryos/tn/<date>-<topic>, then a PR — never commit tomainordevelopdirectly. - Outward-facing actions (pushing branches, opening PRs, publishing) are only
allowed in an approved apply phase (
APPROVAL_TOKENset) unless the task is explicitly autonomous. - Write in French (fr-TN). Match the tone of existing pages.
- Stay in scope: only
sites/tunisie-electricite.com/anddepartments/tunisia-energy/in the monorepo. Other sites are other countries. - As few comments as possible in the code you ship. A comment says why,
and only when the reason is genuinely unusual — something a competent reader
could not reconstruct from the code itself. Never narrate what the code does,
never restate a name, never gloss a self-describing constant. Test: delete the
comment and re-read the code; if it still makes sense, it stays deleted. What
survives looks like a workaround for one specific device or vendor quirk, or a
value that looks arbitrary and is not. Exception: configuration files (PHP
config,
.env.example, YAML manifests) — there a comment is the only documentation an option has, so comment freely. This governs shipped code only; PR bodies, register and journal entries are where you explain yourself at length.
Goals (2026)
- Keep all STEG tariffs and contact data accurate (this is the site's credibility).
- Grow organic traffic through better coverage of what Tunisians search for (outages, bill payment, connection procedures, solar/PROSOL).
- Produce a monthly business review for HQ with concrete opportunities.
Memory
memory/journal.md is your run journal — read it at the start of every run,
append a dated entry at the end. Durable lessons go to memory/ as separate files.
Journal
38 entriesTask created 2026-08-21, scheduled the 5th — this is its first fire, so there was no previous page to grade. Ships as draft PR #19418 (https://github.com/Selectra-Dev/cms/pull/19418), branch countryos/tn/2026-09-05-content-calculateur-facture-steg, 6 files, 1…
steg.com.tn was completely unreachable this run — the first time since tracking began. Every fetch attempt failed, by two independent tools, over roughly 3 minutes of retries: 4× WebFetch (ECONNREFUSED 196.203.146.163:443, on the accented tariff URL, the récla…
Carried the TN-002 resolution ("duplicate the faq to the country") into an actual fix. Branch countryos/tn/2026-08-31-seo-fixes from origin/develop, 1 commit, pushed, draft PR opened: https://github.com/Selectra-Dev/cms/pull/18264. No open countryos/tn PR exis…
No-change confirmation run on the site itself, but the first run since the TN-002 resolution where the FAQPage fix is in scope and authorised — and I acted on it. git log origin/develop --since=2026-08-27 on TN paths → empty; on app/Support/FaqAnswer.php + com…
Reports it wrote
gitignored — these exist only on this machine| Report | Kind | Covers | Written |
|---|---|---|---|
| 2026-09-07-seo-audit.md | seo-audit | 2026-09-07 | 07/09/2026 06:03 |
| 2026-08-business-review.md | business-review | 2026-08 | 15/08/2026 13:41 |
| 2026-08-31-seo-audit.md | seo-audit | 2026-08-31 | 31/08/2026 06:04 |
| 2026-08-27-seo-audit.md | seo-audit | 2026-08-27 | 27/08/2026 16:16 |
| 2026-08-25-seo-audit.md | seo-audit | 2026-08-25 | 25/08/2026 12:05 |
| 2026-08-24-seo-audit.md | seo-audit | 2026-08-24 | 24/08/2026 12:06 |
| 2026-08-17-seo-audit.md | seo-audit | 2026-08-17 | 17/08/2026 06:04 |
| 2026-08-10-seo-audit.md | seo-audit | 2026-08-10 | 10/08/2026 10:13 |
| 2026-08-04-seo-audit.md | seo-audit | 2026-08-04 | 04/08/2026 12:11 |
| 2026-07-business-review.md | business-review | 2026-07 | 15/07/2026 13:47 |
| 2026-07-27-seo-audit.md | seo-audit | 2026-07-27 | 27/07/2026 10:09 |
| 2026-07-03-seo-audit.md | seo-audit | 2026-07-03 | 03/07/2026 19:42 |
| 2026-07-02-seo-audit.md | seo-audit | 2026-07-02 | 02/07/2026 17:02 |
Monthly report
- Google Doc
- Country OS — Tunisia
- Updated
- 01/09/2026 08:11
Proposals awaiting or already decided
| Task | Run | Written |
|---|---|---|
| seo-fixes | 6d6c7e | 02/07/2026 19:22 |
Latest runs
all 49| When | Task | What it reported | Cost | |
|---|---|---|---|---|
| 08/09/2026 08:00 | decisions-escalate | Nothing to announce (0 open, all seen within the last 7 days). | $0 | skipped |
| 07/09/2026 08:00 | decisions-escalate | Nothing to announce (0 open, all seen within the last 7 days). | $0 | ok |
| 07/09/2026 06:03 | seo-audit | SEO audit complete for 2026-09-07. The TN-002 arc is fully closed — `/steg/numero-vert` now emits its 5-question FAQPage live (PR #18264 verified), an… | $0.84 | ok |
| 06/09/2026 08:00 | decisions-escalate | Nothing to announce (0 open, all seen within the last 7 days). | $0 | ok |
| 05/09/2026 09:15 | content | Draft PR **[#19418](https://github.com/Selectra-Dev/cms/pull/19418)** ships a STEG bill simulator at `/calculateur-facture-steg`, targeting the tool w… | $4.50 | ok |
| 05/09/2026 08:00 | decisions-escalate | Nothing to announce (0 open, all seen within the last 7 days). | $0 | ok |
| 04/09/2026 08:00 | decisions-escalate | Nothing to announce (0 open, all seen within the last 7 days). | $0 | ok |
| 03/09/2026 08:00 | decisions-escalate | Nothing to announce (0 open, all seen within the last 7 days). | $0 | ok |
| 02/09/2026 08:00 | decisions-escalate | Nothing to announce (0 open, all seen within the last 7 days). | $0 | ok |
| 01/09/2026 08:00 | decisions-escalate | Nothing to announce (0 open, all seen within the last 7 days). | $0 | ok |
| 01/09/2026 07:12 | content-freshness | No changes in the cms repo (as expected — only the journal in the countries/tn workspace was edited). This run is complete. **Outcome:** `steg.com.tn… | $2.83 | ok |
| 31/08/2026 08:00 | decisions-escalate | Nothing to announce (0 open, all seen within the last 7 days). | $0 | ok |
| 31/08/2026 06:10 | seo-fixes | Confirmed: draft PR to `develop`, branch `countryos/tn/2026-08-31-seo-fixes`. Journal updated. **Outcome:** Implemented TN-002 (the resolved "duplica… | $2.88 | ok |
| 31/08/2026 06:05 | seo-audit | Tenth SEO audit (2026-08-31) ran clean: no TN content changes since 08-27, all 8 core URLs 200 OK, and title/meta lengths hold at guideline across sta… | $0.83 | ok |
| 30/08/2026 08:00 | decisions-escalate | Nothing to announce (0 open, all seen within the last 7 days). | $0 | ok |