The long version

Details

Everything I do, explained properly. Each card on the main page has a section here, and the links in my edit summaries point straight to the right one.

Chapter 1 — Keeping count

📊 Active users

every week
Jobactive-track
Threshold150 actions
Listedtop 10
Wikissimple · ckb · ks · mni

Small wikis rarely know who is actually carrying the load. I count recent actions for every account, set the bots aside, keep everyone at or above the threshold, and publish the ten busiest as a sortable table.

Each row shows a rank, the account, the count, and a comparison against last week. Before I overwrite my own table I read the old one, so a rise appears in green, a fall in red, and no change in grey. An account that has gone quiet since last time is greyed out and labelled inactive rather than silently disappearing.

On the very first run against a new page there is nothing to compare against, so those columns read Null and the previous-update line shows a dash. That's expected, not a fault.

The ckbwiki edition is published entirely in Kurdish — see how the languages work.

🛡️ Admins

every week
Jobadmin-track
Action types13 tracked
Empty columnshidden
Wikissimple · ckb

Where the active-users table counts edits, this one counts administrative work: deletions, revision deletions, log deletions, blocks, unblocks, protections, moves, imports, merges, filter changes and content-model changes — each in its own column, with a bold total.

Thirteen columns would be unreadable on a wiki where only a handful of action types are ever used, so any column that is entirely empty is removed before publishing. On Simple English Wikipedia that usually collapses thirteen columns down to eight.

Administrators who have taken no logged action are greyed and marked inactive — still listed, but visibly distinct from those who were active.

System accounts are excluded. Abuse filter holds the sysop flag and gets swept up by any query for administrators, but it is a piece of MediaWiki rather than a colleague, and listing it as administrator number fifteen would be misleading. Other non-human accounts can be added to the same list — see why someone isn't listed.

Chapter 2 — Tidying

🗂️ Categories

every day
Jobscategorize-ckb · -ks · -ku
Rhythmdaily, per wiki

I look for articles that have no categories and file them where they belong, so readers browsing the category tree can find them.

I leave alone anything I have no business touching — redirects, disambiguation pages, and pages already sitting in a maintenance category where a human has flagged the problem deliberately.

This runs as three separate daily jobs rather than one, so a hiccup on one wiki never holds up the other two and each wiki's schedule can be tuned on its own.

🧹 Old HTML tags

every 6 hours
Jobobsolete-tags
Per runup to 40 pages
Scopearticles only
Wikisckb

MediaWiki's Linter flags HTML that still renders but is long deprecated. I replace three of them: <center> becomes a centring <div>, <font color> becomes a <span> with the same colour, and <tt> becomes <code>.

I only make a swap that is provably identical. A <font> carrying an attribute I can't translate cleanly is left alone rather than guessed at, and a <center> wrapped around a table, list, gallery, blockquote or poem is left for a human — centring a block isn't the same as centring a line.

I never touch anything inside <nowiki>, <pre>, <syntaxhighlight>, <code>, comments or URLs. Before every save I strip the tags from the old and the new text and compare: if a single visible character would change, I skip the page instead of saving it.

📋 Women's worklist

every week
Jobwomenlist
Articles known2,786
Listedshortest 200
Edits articlesnever

This one adds nothing to any article. It publishes a single page: the shortest articles about women on this wiki, so that an editathon — or anyone with a free hour — can see immediately where the work is most needed.

The subjects come from Wikidata, which records who an article is about, so the list needs no maintenance by hand as new articles appear. Length is measured the same way as for stub marking: the real prose, after references, infoboxes, tables and categories are set aside. The table also shows whether each article already carries a stub tag.

Deliberately not a stub template. A stub notice is meant to say what an article is about so an editor can find work in their subject; "woman" is not a subject, and one banner across politicians, scientists, singers and athletes alike would help nobody. Neither English nor Arabic Wikipedia has such a template, for the same reason. A list does the job better and leaves the articles untouched.

🌱 Stub marking

every 3 hours
Jobstubtag
Threshold6000 bytes of prose
Per articleup to 3 stubs
Wikisckb

A stub notice should match reality: a two-paragraph article ought to carry one, and an article that has since grown ought not to. I keep the two in step.

What I measure is the prose — the sentences a reader actually reads. References, infoboxes, tables, image syntax, categories and headings are all stripped out before counting, so a page that is mostly citations is correctly judged short. The bar is 6000 bytes, which in Kurdish is about 3000 characters, since every letter in this script costs two bytes.

The community asked for the specific stub rather than the general one, and there are 227 to choose from. I work out the subject from the article's portal bar; if it has none, I look at the same article on Arabic Wikipedia, then English. An article whose subject I cannot establish is left alone rather than guessed at.

Where several subjects apply I keep at most three, in order of usefulness: a biography first for an article about a person, then what they did — actor, writer, singer — then the work itself, then the field, and only lastly the country. So an actor's page gets the biography, actor and film stubs, not the seven portals it happens to sit in.

I walk the wiki alphabetically and remember where I stopped, so each run carries on from the last rather than starting over.

🏷️ Maintenance tags

every day
Jobtag
Per run2000 articles, up to 20 edits
Notices7 kinds
Wikisckb

A maintenance notice tells a reader to treat an article with care, and tells an editor where the work is. It is only worth having if it is true, so I both add them and take them away: an article that gains its first category should lose the "uncategorised" notice the same way it gained it.

I check seven things — no sources, a single source, the same two again for biographies of living people, no outgoing links, nothing linking in, and no categories. Where several apply I gather them into one {{پرسی فرە}} block in a fixed order rather than stacking banners, and the "uncategorised" notice goes at the foot of the page where that convention belongs. Disambiguation pages are skipped entirely.

Counting sources is the delicate part. Reading the wikitext is quick but blind to references a template generates, so an article could be called unsourced when it is not. I count the quick way first: two or more proves the article is referenced and there is nothing to decide. Only an article showing none or one gets the slow, exact check — and those are precisely the ones a notice would land on.

Orphans work the same way. MediaWiki publishes a list of articles nothing links to, but it is a day old and stops at 5000 entries, so I treat it as a way to find candidates and then ask the wiki directly before touching anything.

This task began as AramBot's tag bot, whose tag definitions I still use unchanged. That version reads recent changes because checking one article costs about six requests. Gathering the same facts for fifty articles at a time brings a 2000-article sweep down from roughly twelve thousand requests to a few dozen, which is what lets me walk the whole wiki instead of only what was edited today.

Expect me to be quiet. Most of ckbwiki is already tagged where it needs to be; my job is the handful that slip through, and the notices that have outlived their problem.

🔤 Arabic letters

every 6 hours
Jobnormalize
Fixesي → ی · ك → ک
Per runup to 40 pages
Wikisckb

Text typed on an Arabic or Persian keyboard comes out with the Arabic yeh ي and kaf ك where Sorani uses ی and ک. On screen they look nearly identical; to the software they are different characters, so search, sorting and links quietly break.

The danger is obvious — articles legitimately contain Arabic: Qur'anic verses, names, glosses. So I never replace a character on sight. I work word by word, and I change a word only when it contains a letter Arabic does not have at all (گ چ پ ژ ڤ ۆ ێ ە ڕ ڵ), which proves the word is Kurdish. No Arabic or Qur'anic word contains those letters, so scripture and Arabic names are protected by the rule itself.

Any word carrying Arabic diacritics is skipped outright, and template calls, link targets, file names and code are hidden from me before I start. Before saving I compare the old and new text character by character: unless the only differences are those two letter swaps, I don't save.

Chapter 3 — How I work

🌐 Languages

English · کوردی

Everything I publish to Central Kurdish Wikipedia is in Kurdish: the column headers, the intro sentence, the inactive marker, the update labels and the footer. Simple English, Kashmiri and Meitei get the English edition.

Wording that reads awkwardly to a native speaker is a bug like any other — please report it the same way.

🎚️ Why someone isn't listed

If you expected to see an account and didn't, it's almost certainly one of these:

  • Below the threshold. The active-users table lists accounts with at least 150 recent actions. Below that, the table becomes a directory instead of a highlight.
  • Outside the top ten. A wikitable has to stop somewhere. Clearing the threshold doesn't guarantee a place in the published ten.
  • A bot. Flagged bot accounts are excluded by design — a bot out-editing every human tells you nothing useful.
  • A system account. Abuse filter and similar are excluded from the admin table by name, case-insensitively.

These numbers are deliberate choices, not laws of nature. If a threshold is wrong for your wiki, say so and it can be changed.

⛔ How to stop me

anyone may

You don't need to be an administrator and you don't need permission.

Set my run page on the wiki in question to false and I'll halt before my next write. I check it at the start of every cycle, so a stop takes effect within one run rather than at the end of the current one. Find your wiki's run page →

When you stop me, please leave a reason in your edit summary. I read it and post a short note to my keeper's talk page — who stopped me, when, and why — so a problem never goes unnoticed just because she wasn't watching.

I also honour {{nobots}} and the {{bots}} exclusion family — a page carrying an exclusion that applies to me is skipped, not edited.

If something is going wrong right now and you can't wait, an administrator can block me. I won't take it personally and nothing is lost: every page I write keeps its history, so any edit of mine can be reverted like any other.

📖 Version history

v1 — activity tracking on Simple English Wikipedia, published in English.

v2 — cross-wiki expansion, administrator tracking with automatic column hiding, per-wiki message tables, and full Kurdish output for ckbwiki.