/install multi-topic-board
Multi-Topic Board v1.0
What This Skill Does
Not a notepad — an execution accelerator.
Multi-Topic Board solves the "discussed then forgotten" problem. Discussions generate unresolved topics that never reach the execution layer. The board chains two Cron systems with tasks/ into a closed loop: track → remind → create task → complete.
When to Use This Skill
- User discusses a topic without reaching a conclusion
- User asks "where did we leave off?" or "what's pending?"
- User wants to track pending decisions across sessions
- A topic has been active for 3+ days without an execution task
Architecture
🔥 Pending ──[3+ days, no task]──→ Cron notifies main
│ ↓
│ main decides: create task?
↓ ↓
🔄 Parked tasks/ file created
│ ↓
↓ ↓
✅ Done ←─────────────────────── task done, board updated
Two trigger Cron systems:
- Heartbeat Cron (every 4 hours): state sync + timeout reminder
- System Maintenance Cron (daily): update aging days + timeout stats
- Main Agent: decides whether to create task, manually links task path to board
Entry Format
Each entry in the board:
- [ ] [Topic] Description | YYYY-MM-DD | source | X days | task: filename.md or none
| Field | Description | Who fills |
|---|---|---|
| YYYY-MM-DD | Discovery date, auto-recorded | Agent |
| days | Days since discovery, auto-updated | System (Cron) |
| task | File path when task exists | Manual |
Status Flow
| Status | Meaning | Trigger |
|---|---|---|
| 🔥 Pending | Topic open, no conclusion | User raises new topic |
| 🔄 Parked | Temporarily on hold | User says "暂缓" / "hold" |
| ✅ Done | Concluded or closed | Has conclusion + write result |
Bootstrap Setup
When this skill is first loaded, set up the closed-loop infrastructure:
Step 1: Create tasks/ Directory
mkdir -p tasks/
Tasks directory stores execution task files. When main decides to act on a pending topic, create a task file here and manually link it back to the board entry.
Step 2: Setup Multi-Topic Board
Check if HEARTBEAT.md exists in workspace:
- IF exists: Write new task items into the existing file (do not overwrite existing content)
- IF not exists: Create
HEARTBEAT.mdas a new cron job
Create Multi-Topic Board File (memory/multi-topic.md):
# Multi-Topic Board
> Track active topics and unresolved pending items.
> Both agent and user can update; Heartbeat syncs automatically.
**State Flow**:
🔥 Pending → 🔄 Parked → ✅ Done
**Closed-Loop Mechanism**:
- Heartbeat Cron syncs state changes
- System Maintenance Cron updates aging days
- 3+ days with no task → notifies main to create task in tasks/
- After task created → manually link file path to entry
**Usage**:
- User starts a topic → append to 🔥 Pending
- User says "hold" → move topic to 🔄 Parked
- Has conclusion → move to ✅ Done + write conclusion
- User asks "where did we leave off?" → read this file
**Format**:
- Aging days: updated daily by System Maintenance Cron
- Task link: fill in after creating task file
---
## 🔥 Pending
## 🔄 Parked
## ✅ Done
Step 3: Setup or Update Heartbeat Cron
IF HEARTBEAT.md already exists:
- Read the existing file
- Add this task to the existing Heartbeat workflow (do not overwrite):
Multi-Topic Board Sync
- Read
memory/multi-topic.md - Inject active topics into context
- Sync state changes
- Identify topics 3+ days with no task; report in main notification
- Read
IF HEARTBEAT.md does not exist, create a new cron job:
{
"schedule": { "kind": "every", "everyMs": 14400000 },
"payload": {
"kind": "agentTurn",
"message": "【Multi-Topic Board Sync】\
\
Step 1: Read sessions_list (filter noise sessions)\
\
Step 2: Read memory/multi-topic.md\
- Inject active topics into context\
- Sync state changes\
\
Step 3: Identify timed-out topics\
- Find topics 3+ days with task = none\
- IF > 0 → sessions_send to main: list timed-out topics, suggest creating tasks in tasks/\
"
},
"sessionTarget": "isolated",
"delivery": { "mode": "none" }
}
Every 4 hours (14400000ms).
Step 4: Setup System Maintenance Cron
{
"schedule": { "kind": "every", "everyMs": 86400000 },
"payload": {
"kind": "agentTurn",
"message": "【Daily Multi-Topic Board Maintenance】\
\
Step 1: Update aging days\
- Read memory/multi-topic.md\
- For each 🔥 Pending entry: today - discovered_at = days\
- IF no days field → append to entry\
- IF days changed → update in place\
- Write back to multi-topic.md (only touch the days field)\
\
Step 2: Timeout stats and alert\
- Count entries: days >= 3 AND task = none\
- IF > 0 → sessions_send to main: N topics 3+ days with no task: [topic names]\
- IF = 0 → silent end\
"
},
"sessionTarget": "isolated",
"delivery": { "mode": "none" }
}
Daily.
Step 5: Link Task to Board
After creating any task file, update the corresponding board entry in memory/multi-topic.md:
- Change
task: nonetotask: tasks/your-task-file.md
File Locations
| File | Purpose |
|---|---|
memory/multi-topic.md |
Multi-Topic Board main file |
HEARTBEAT.md |
Heartbeat cron payload (if skill creates it) |
tasks/*.md |
Execution task files |
Design Principles
- Minimal intervention: No separate hook needed; embedded in existing cron workflows
- Auto flow: Aging days and state sync maintained by cron
- Proactive alerts: Only alert after 3+ days with no task; no spam
- One-way feedback: Task done → board updated; board updated → does NOT auto-create task (main decides)
- Manual bridge: Task path is a manual bridge — the human's judgment must not be stolen by the system
Usage Scenarios
Scenario 1: Auto-append New Topic
User discussion produces unresolved topic → Agent appends to 🔥 Pending
Scenario 2: Timeout Auto-alert
days >= 3 AND task = none → Cron notifies main → Suggest creating task in tasks/
Scenario 3: Task Completion Closed-loop
tasks/ file completed → Agent manually links path to board → Moves to ✅ Done
Scenario 4: Progress Query
User asks "where did we leave off?" → Read board to user
Usage Boundaries
Suitable for:
- Unresolved topics from user discussions
- Decisions needing tracking but not immediate execution
- Multi-session coordinated long-cycle tasks
Not suitable for:
- Tasks with clear execution plans (go directly to tasks/)
- One-time information queries (no tracking needed)
- Topics user explicitly says "不需要管"
Multi-Topic Board v1.0 — Every unresolved topic gets a landing place
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install multi-topic-board - After installation, invoke the skill by name or use
/multi-topic-board - Provide required inputs per the skill's parameter spec and get structured output
What is Multi-Topic Board?
Multi-Topic Board: AI Agent active topic tracking and task closed-loop management. Tracks unresolved discussions, auto-updates aging days, sends timeout aler... It is an AI Agent Skill for Claude Code / OpenClaw, with 64 downloads so far.
How do I install Multi-Topic Board?
Run "/install multi-topic-board" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Multi-Topic Board free?
Yes, Multi-Topic Board is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Multi-Topic Board support?
Multi-Topic Board is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Multi-Topic Board?
It is built and maintained by 戴龙虾 (@kzclaw); the current version is v1.0.0.