rename the TIC system agent to event triage
Nightly Build / build (push) Successful in 7m16s

TIC said nothing about what the agent does, and named the wrong thing: the
tick belongs to the scheduler, which is generic and lives outside it. The
agent's only decision is whether an incoming event deserves an interruption
— it sorts, it never acts — so it is now event-triage, matching the
functional naming of the two memory lints.

- agents/tic/ -> agents/event-triage/, module tic/ -> event_triage/,
  TicManager -> EventTriageManager, TicConfig -> EventTriageConfig
- agent id and chat source: "tic" -> "event-triage"
- config keys: tic.* -> event_triage.*, and the config.yml section tic: ->
  event_triage: (greenfield: previously set values fall back to defaults)
- i18n en/it/fr: Event triage / Triage eventi / Tri des evenements; dropped
  the stale "TIC sessions" mention from the debug-pages description
- docs/system-agents.md, docs/index.md, docs/settings.md, CLAUDE.md, SKALD.md
This commit is contained in:
2026-07-28 21:59:37 +01:00
parent 0b793d56ae
commit 046f060fcd
50 changed files with 251 additions and 240 deletions
+1 -1
View File
@@ -44,7 +44,7 @@ System agents (`type: "system"`) are invisible background agents that maintain t
| Agent | Animal | Role | Elements | Palette |
|-------|--------|------|----------|---------|
| **TIC** 👁️ | Spider 🕷️ | Watchful guardian | Sensor nodes, glowing web, radar arcs, notification symbols (bell, letter, calendar) | Dark purple, amber, soft cyan, warm grey |
| **Event triage** 👁️ | Spider 🕷️ | Watchful guardian | Sensor nodes, glowing web, radar arcs, notification symbols (bell, letter, calendar) | Dark purple, amber, soft cyan, warm grey |
| **Private Memory Lint** 🧹 | Firefly ✨ | Private memory caretaker | Glowing lantern, memory fragments, tiny notes, sparkles | Warm gold, amber, soft teal, gentle green |
| **Shared Memory Lint** 🧹 | Bee 🐝 | Shared space caretaker | Scroll with guidelines, honey dipper, honeycomb shapes, tiny documents | Warm amber, gold, soft teal, honey |
@@ -1,6 +1,8 @@
# TIC — Background Event Processor
# Event triage — Background Event Processor
You are **TIC**, an ephemeral background agent. You are not part of a user conversation. You run silently, in the background, as a periodic tick of the system.
You are **event triage**, an ephemeral background agent. You are not part of a user conversation. You run silently, in the background, as a periodic pass of the system.
Your name is what your job is: you **sort** incoming events by whether they deserve the user's attention. You never act on one.
You always run **for one specific user**. The events you are given are that user's own — they arrived through connectors that person activated — and the memory injected below is theirs. Everything you decide is on their behalf and reaches nobody else.
@@ -19,11 +21,11 @@ You receive a batch of pending events collected from external sources (email, Wh
## Your lifecycle
This is an **ephemeral session**. It was created specifically for this tick and will be **permanently discarded** the moment your turn ends — that is, the moment you stop issuing tool calls and produce your final response.
This is an **ephemeral session**. It was created specifically for this pass and will be **permanently discarded** the moment your turn ends — that is, the moment you stop issuing tool calls and produce your final response.
- There is no user waiting on the other end. Do not write conversational responses.
- Nothing you do here carries forward except what you explicitly write to `user-memory/`.
- Future ticks will start fresh with the same memory state you leave behind.
- Future passes will start fresh with the same memory state you leave behind.
**Do not linger.** Reach a decision, act if needed, return.
@@ -99,7 +101,7 @@ Be efficient. Only fetch what you actually need to make a decision.
- Calendar events the user already knows about (no new information)
- Low-priority messages with no urgency
**If nothing is worth surfacing: do nothing.** Return without calling `notify`. An empty tick is a correct tick — do not manufacture notifications just to seem active.
**If nothing is worth surfacing: do nothing.** Return without calling `notify`. An empty pass is a correct pass — do not manufacture notifications just to seem active.
---
@@ -140,7 +142,7 @@ You are producing **structured data, not a message to the user.** The main agent
<!-- INCLUDE: common/memory.md -->
TIC reads memory primarily to evaluate relevance. Write to memory only when you discover something genuinely new and durable — for example, a new contact who wrote for the first time, or a project status update that changes what the user needs to monitor.
You read memory primarily to evaluate relevance. Write to memory only when you discover something genuinely new and durable — for example, a new contact who wrote for the first time, or a project status update that changes what the user needs to monitor.
---

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.4 MiB

+20
View File
@@ -0,0 +1,20 @@
{
"name": "Event triage",
"description": "Hidden background agent. Spawned periodically by the scheduler. Processes pending MCP events (email, WhatsApp, calendar), evaluates relevance, and notifies the user via notify() when something is worth surfacing. Ephemeral: session is discarded as soon as the turn ends.",
"friendly_description": "Background agent that periodically reviews incoming email, WhatsApp, and calendar events and pings you when something matters.",
"i18n": {
"it": {
"name": "Triage eventi",
"friendly_description": "Agente in background che esamina periodicamente email, WhatsApp ed eventi del calendario e ti avvisa quando qualcosa è importante."
},
"fr": {
"name": "Tri des événements",
"friendly_description": "Agent en arrière-plan qui examine périodiquement les e-mails, WhatsApp et les événements du calendrier et vous avertit quand quelque chose compte."
}
},
"type": "system",
"inject_skills": false,
"inject_memory": ["user-memory/index.md"],
"icon": "icon.png",
"strength": "low"
}
-20
View File
@@ -1,20 +0,0 @@
{
"name": "TIC",
"description": "Hidden background agent. Spawned periodically by the scheduler. Processes pending MCP events (email, WhatsApp, calendar), evaluates relevance, and notifies the user via notify() when something is worth surfacing. Ephemeral: session is discarded as soon as the turn ends.",
"friendly_description": "Background watcher that periodically reviews incoming email, WhatsApp, and calendar events and pings you when something matters.",
"i18n": {
"it": {
"name": "TIC",
"friendly_description": "Osservatore in background che esamina periodicamente email, WhatsApp ed eventi del calendario e ti avvisa quando qualcosa è importante."
},
"fr": {
"name": "TIC",
"friendly_description": "Observateur en arrière-plan qui examine périodiquement les e-mails, WhatsApp et les événements du calendrier et vous avertit quand quelque chose compte."
}
},
"type": "system",
"inject_skills": false,
"inject_memory": ["user-memory/index.md"],
"icon": "icon.png",
"strength": "low"
}