FIS Architecture
by @muselinn
Orchestrate multi-agent workflows with JSON tickets and A2A coordination. Use when delegating tasks between CyberMao (Main) and Worker agents (Engineer/Resea...
clawhub install fis-architectureπ About This Skill
name: fis-architecture description: Orchestrate multi-agent workflows with JSON tickets and A2A coordination. Use when delegating tasks between CyberMao (Main) and Worker agents (Engineer/Researcher/Writer). metadata: openclaw: emoji: ποΈ always: false homepage: https://github.com/linn/fis-architecture
FIS Architecture 3.2 Pro
Multi-agent workflow framework for CyberMao (Main) β Worker coordination using JSON tickets and Discord Forum threads.
When to Use This Skill
Use FIS when:
Agent Roles:
| Role | Agent ID | Expertise |
|------|----------|-----------|
| Architect | main | Coordination, task routing, user communication |
| Coding | engineer | Python, gprMax, algorithms, data analysis |
| Research | researcher | Theory, literature, simulation planning |
| Writing | writer | Documentation, LaTeX, visualization |
Discord Bot Permissions (REQUIRED)
Each agent's Discord bot must have these permissions configured in the Discord server. Without them, Thread creation and messaging will fail silently.
Required Bot Permissions:
How to configure: 1. Go to Discord Server Settings β Roles 2. For each bot role (CyberMao, Researcher, Engineer, Writer), enable the permissions above 3. Ensure each Forum channel grants these permissions to the relevant bot roles
Verify with:
{ "action": "threadCreate", "channelId": "", "name": "Permission Test" }
If the bot lacks permissions, the discord tool will return an error.Tool Configuration
| Tool | Purpose | Path |
|------|---------|------|
| fis_lifecycle_pro.py | Ticket lifecycle (create/status/complete/list) | scripts/fis_lifecycle_pro.py |
| fis_coordinator.py | Generate delegation templates (CyberMao only) | scripts/fis_coordinator.py |
| fis_worker_toolkit.py | Spawn sub-agents, generate reports (Workers only) | scripts/fis_worker_toolkit.py |
Python Environment: Requires Python 3.8+ with standard library only (no external dependencies).
Core Workflow
Step 1: CyberMao Delegates Task
# Generate ticket + Thread template + A2A command
python3 scripts/fis_coordinator.py delegate \
--agent engineer \
--task "Implement GPR signal filter" \
--forum coding
Output:
TASK_YYYYMMDD_XXX_AGENTsessions_send command to notify WorkerStep 2: CyberMao Creates Forum Thread
Use the discord tool to create a Thread in the appropriate Forum channel:
{
"action": "threadCreate",
"channelId": "",
"name": "TASK_xxx: Implement GPR signal filter"
}
The response returns the new Thread ID. Then notify the Worker with the Thread ID:
python3 scripts/fis_coordinator.py notify \
--ticket-id TASK_xxx \
--thread-id
Execute the generated sessions_send command to notify the Worker.
Step 3: Worker Executes Task
# Check ticket
python3 scripts/fis_lifecycle_pro.py listUpdate status
python3 scripts/fis_lifecycle_pro.py status \
--ticket-id TASK_xxx --status doingOptional: Spawn sub-agent for complex sub-tasks
python3 scripts/fis_worker_toolkit.py spawn \
--parent-ticket TASK_xxx \
--subtask "Analyze algorithm complexity"
Worker replies in the Forum Thread using the discord tool:
{
"action": "threadReply",
"channelId": "",
"content": "Task received. Starting execution."
}
Step 4: Worker Reports Completion
# Generate completion report
python3 scripts/fis_worker_toolkit.py report \
--parent-ticket TASK_xxx \
--summary "Successfully implemented GPR filter" \
--deliverables filter.py test_results.json
Execute the generated sessions_send command to notify CyberMao.
Step 5: CyberMao Finalizes
# View report
python3 scripts/fis_coordinator.py report --ticket-id TASK_xxxMark complete
python3 scripts/fis_lifecycle_pro.py complete --ticket-id TASK_xxx
Archive the Thread and report to User in #daily-chat.
Architecture
User/Linn
β
CyberMao (Main) - Architect, coordinator
β sessions_send + discord threadCreate
Worker (Engineer/Researcher/Writer) - Domain experts
β (optional) sessions_spawn mode="run"
SubAgent (temporary, background) - Complex sub-tasks
Key Principles:
1. A2A via sessions_send β Main calls Workers, Workers report back
2. Ticket tracking β All tasks have JSON tickets in fis-hub/
3. Programmatic Thread creation β CyberMao creates Forum Threads via discord tool's threadCreate action
4. SubAgent background mode β sessions_spawn with mode="run", no new Thread
Commands Reference
fis_lifecycle_pro.py
# Create ticket
python3 scripts/fis_lifecycle_pro.py create \
--agent engineer --task "Description" --channel-type codingUpdate status (todo/doing/done)
python3 scripts/fis_lifecycle_pro.py status \
--ticket-id TASK_xxx --status doing --note "Progress update"Mark complete
python3 scripts/fis_lifecycle_pro.py complete --ticket-id TASK_xxxList active tickets
python3 scripts/fis_lifecycle_pro.py listArchive old tickets
python3 scripts/fis_lifecycle_pro.py archive
fis_coordinator.py (CyberMao only)
# Delegate and generate templates
python3 scripts/fis_coordinator.py delegate \
--agent researcher --task "GPR theory analysis" --forum theoryNotify Worker after Thread is created
python3 scripts/fis_coordinator.py notify \
--ticket-id TASK_xxx --thread-id View detailed report
python3 scripts/fis_coordinator.py report --ticket-id TASK_xxx
fis_worker_toolkit.py (Workers only)
# Spawn sub-agent (background, no Thread)
python3 scripts/fis_worker_toolkit.py spawn \
--parent-ticket TASK_xxx --subtask "Complex sub-task description"Generate completion report
python3 scripts/fis_worker_toolkit.py report \
--parent-ticket TASK_xxx \
--summary "Completion summary" \
--deliverables file1.py file2.json
Channel Mapping
| Category | Forum Channel | Worker | Tool Flag |
|----------|--------------|--------|-----------|
| RESEARCH | π¬-theory-derivation | @Researcher | --forum theory |
| RESEARCH | π-gpr-simulation | @Researcher | --forum simulation |
| DEVELOPMENT | π»-coding | @Engineer | --forum coding |
| WRITING | π-drafts | @Writer | --forum drafts |
Error Handling
If ticket creation fails:
python3 --version (need 3.8+)fis-hub/ directory exists and is writableIf Thread creation fails:
channelId points to a Forum channel (not a regular text channel)If A2A fails:
openclaw.json has agentToAgent.enabled: trueallow listIf sub-agent spawn fails:
mode="run" is used (not mode="session")Quality Standards
1. One Task = One Ticket β Never reuse ticket IDs
2. Status Updates Required β Workers must update status (TODO β DOING β DONE)
3. Thread Per Task β Each task gets its own Forum Thread (created via threadCreate)
4. A2A Confirmation β Always confirm receipt via sessions_send
5. Archive After Complete β Archive Thread after task completion
Configuration
Required in ~/.openclaw/openclaw.json:
{
"tools": {
"agentToAgent": {
"enabled": true,
"allow": ["main", "researcher", "engineer", "writer"]
}
}
}
Testing
Quick A2A Test
# Test connectivity
sessions_send(sessionKey="engineer", message="A2A test")
Thread Creation Test
{ "action": "threadCreate", "channelId": "", "name": "FIS Test Thread" }
Full Workflow Test
# 1. Create task
python3 scripts/fis_coordinator.py delegate \
--agent researcher --task "Test task" --forum theory2. Create Forum Thread via discord tool threadCreate
3. Notify Worker with Thread ID
python3 scripts/fis_coordinator.py notify \
--ticket-id TASK_xxx --thread-id 4. Execute A2A command
5. Complete
python3 scripts/fis_lifecycle_pro.py complete --ticket-id TASK_xxx
*FIS 3.2 Pro | Multi-Agent Workflow Framework*
βοΈ Configuration
Required in ~/.openclaw/openclaw.json:
{
"tools": {
"agentToAgent": {
"enabled": true,
"allow": ["main", "researcher", "engineer", "writer"]
}
}
}