massgen-develops-massgen
Assists in self-improvement of MassGen through automated testing and visual evaluation of terminal UX.
Install
mkdir -p .claude/skills/massgen-develops-massgen && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/6070" && unzip -o skill.zip -d .claude/skills/massgen-develops-massgen && rm skill.zipInstalls to .claude/skills/massgen-develops-massgen
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Guide for using MassGen to develop and improve itself. This skill should be used when agents need to run MassGen experiments programmatically (using automation mode) OR analyze terminal UI/UX quality (using visual evaluation tools). These are mutually exclusive workflows for different improvement goals.Key capabilities
- →Run MassGen in automation mode for programmatic backend testing.
- →Monitor MassGen execution progress using the `status.json` file.
- →Extract the log directory path from MassGen's clean output.
- →Read final answers from `answer.txt` after MassGen completion.
- →Create multiple background monitoring tasks for token usage, errors, or progress.
- →Generate a full-featured MassGen configuration with code-based tools and task planning.
How it works
This skill describes two distinct workflows for MassGen: an automation mode for programmatic backend testing with structured output and monitoring, and a visual evaluation mode for terminal UI/UX analysis. It also details how to generate and customize MassGen configurations.
Inputs & outputs
When to use massgen-develops-massgen
- →Running programmatic functional tests
- →Evaluating terminal color and layout UX
- →Refining agent coordination logic
About this skill
MassGen Develops MassGen
This skill provides guidance for using MassGen to develop and improve itself. Choose the appropriate workflow based on what you're testing.
Two Workflows
- Automation Mode - Test backend functionality, coordination logic, agent responses
- Visual Evaluation - Test terminal display, colors, layout, UX
Workflow 1: Automation Mode
Use this to test functionality without visual inspection. Ideal for programmatic testing.
Running MassGen with Automation
Run MassGen in the background (exact mechanism depends on your tooling):
uv run massgen --automation --config massgen/configs/basic/multi/two_agents_gemini.yaml "What is 2+2?"
For MassGen agents: Use custom_tool__start_background_tool targeting mcp__command_line__execute_command, then poll with custom_tool__get_background_tool_status / custom_tool__get_background_tool_result.
For Claude Code: Use Bash tool's run_in_background parameter.
Why Automation Mode
| Feature | Benefit |
|---|---|
| Clean output | ~10 parseable lines vs 3,000+ ANSI codes |
| LOG_DIR printed | First line shows log directory path |
| status.json | Real-time monitoring file |
| Exit codes | 0=success, 1=config, 2=execution, 3=timeout, 4=interrupted |
| Workspace isolation | Safe parallel execution |
Expected Output
LOG_DIR: .massgen/massgen_logs/log_20251120_143022_123456
STATUS: .massgen/massgen_logs/log_20251120_143022_123456/status.json
🤖 Multi-Agent Mode
Agents: gemini-2.5-pro1, gemini-2.5-pro2
Question: What is 2+2?
============================================================
QUESTION: What is 2+2?
[Coordination in progress - monitor status.json for real-time updates]
WINNER: gemini-2.5-pro1
DURATION: 33.4s
ANSWER_PREVIEW: The answer is 4.
COMPLETED: 2 agents, 35.2s total
Parse LOG_DIR from the first line to find the log directory.
Monitoring Progress
Read the status.json file (updated every 2 seconds):
cat .massgen/massgen_logs/log_20251120_143022_123456/status.json
Key fields:
{
"coordination": {
"completion_percentage": 65,
"phase": "enforcement"
},
"results": {
"winner": null // null = running, "agent_id" = done
},
"agents": {
"agent_a": {
"status": "streaming",
"error": null
}
}
}
Agent status values: waiting, streaming, answered, voted, completed, error
Reading Results
After completion (exit code 0):
# Read final answer
cat [log_dir]/final/[winner]/answer.txt
Timing Expectations
- Standard tasks: 2-10 minutes
- Complex/meta tasks: 10-30 minutes
- Check if stuck: Read status.json - if
completion_percentageincreases, it's working
Advanced: Multiple Background Monitors
You can create multiple background monitoring tasks that run independently alongside the main MassGen process. Each monitor can track different aspects and write to separate log files for later inspection.
Approach
Create small Python scripts that run in background shells. Each script:
- Monitors a specific aspect (tokens, errors, progress, coordination, etc.)
- Writes timestamped data to its own log file
- Runs in a loop with
sleep()intervals - Can be checked anytime without blocking the main task
Example Monitor Scripts
Token Usage Monitor (token_monitor.py):
import json, time, sys
from pathlib import Path
log_dir = Path(sys.argv[1]) # Pass LOG_DIR as argument
while True:
if (log_dir / "status.json").exists():
with open(log_dir / "status.json") as f:
data = json.load(f)
with open("token_monitor.log", "a") as log:
log.write(f"=== {time.strftime('%H:%M:%S')} ===\n")
log.write(f"Tokens: {data.get('total_tokens_used', 0)}\n")
log.write(f"Cost: ${data.get('total_cost', 0):.4f}\n\n")
time.sleep(5)
Error Monitor (error_monitor.py):
import time, sys
from pathlib import Path
log_dir = Path(sys.argv[1])
while True:
if log_dir.exists():
with open("error_monitor.log", "a") as log:
log.write(f"=== {time.strftime('%H:%M:%S')} ===\n")
errors = []
for logfile in log_dir.glob("*.log"):
with open(logfile) as f:
for line in f:
if any(x in line.lower() for x in ['error', 'warning', 'failed']):
errors.append(line.strip())
log.write('\n'.join(errors[-5:]) if errors else "No errors\n")
log.write("\n")
time.sleep(5)
Progress Monitor (progress_monitor.py):
import json, time, sys
from pathlib import Path
log_dir = Path(sys.argv[1])
while True:
if (log_dir / "status.json").exists():
with open(log_dir / "status.json") as f:
data = json.load(f)
with open("progress_monitor.log", "a") as log:
log.write(f"=== {time.strftime('%H:%M:%S')} ===\n")
progress = data.get('completion_percentage', 0)
active = sum(1 for a in data.get('agents', {}).values()
if a.get('status') == 'active')
log.write(f"Progress: {progress}% Active agents: {active}\n\n")
time.sleep(5)
Coordination Monitor (coordination_monitor.py):
import json, time, sys
from pathlib import Path
log_dir = Path(sys.argv[1])
while True:
if (log_dir / "status.json").exists():
with open(log_dir / "status.json") as f:
data = json.load(f)
coord = data.get('coordination', {})
with open("coordination_monitor.log", "a") as log:
log.write(f"=== {time.strftime('%H:%M:%S')} ===\n")
log.write(f"Phase: {coord.get('phase', 'unknown')}\n")
log.write(f"Round: {coord.get('round', 0)}\n")
log.write(f"Total answers: {coord.get('total_answers', 0)}\n\n")
time.sleep(5)
Workflow
- Launch main task, parse the LOG_DIR from output
- Create monitor scripts as needed (write Python files)
- Launch monitors in background shells:
python3 token_monitor.py [LOG_DIR] & - Check monitor logs anytime by reading the .log files
- When complete, kill monitor processes and analyze logs
Custom Monitors
Create monitors for any metric you want to track:
- Model-specific performance metrics
- Memory/context usage patterns
- Real-time cost accumulation
- Answer quality trends
- Agent coordination patterns
- Specific error categories
Benefits:
- Non-blocking inspection of specific metrics on demand
- Historical data captured for post-run analysis
- Independent monitoring streams for different aspects
- Easy to add new monitors without modifying configs
Workflow 2: Visual Evaluation
Use this to analyze and improve MassGen's terminal display quality. Requires tools from custom_tools/_multimodal_tools/.
Important: This workflow records the rich terminal display, so the actual recording does NOT use --automation mode. However, you should ALWAYS pre-test with --automation first.
Prerequisites
You should have these tools available in your workspace:
run_massgen_with_recording- Records terminal sessions as videounderstand_video- Analyzes video frames with GPT-4.1 vision
Step 0: Pre-Test with Automation (REQUIRED)
Before recording the video, verify the config works and API keys are valid:
# Start with --automation to verify everything works
uv run massgen --automation --config [config_path] "[question]"
Wait 30-60 seconds (enough to verify API keys, config parsing, tool initialization), then kill the process.
Why this is critical:
- Detects config errors before wasting recording time
- Validates API keys are present and working
- Ensures tools initialize correctly
- Prevents recording a broken session
If the automation test fails, fix the issues before proceeding to recording.
Step 1: Record a MassGen Session
After the automation pre-test succeeds, record the visual session:
from custom_tools._multimodal_tools.run_massgen_with_recording import run_massgen_with_recording
result = await run_massgen_with_recording(
config_path="massgen/configs/basic/multi/two_agents_gemini.yaml",
question="What is 2+2?",
output_format="mp4", # ALWAYS use mp4 for maximum compatibility
timeout_seconds=120,
width=1920,
height=1080
)
Format recommendation: Always use "mp4" for maximum compatibility. GIF and WebM are supported but MP4 is preferred.
The recording captures: Rich terminal display with colors, status indicators, coordination visualization (WITHOUT --automation flag).
Step 2: Analyze the Recording
Use understand_video to analyze the MP4 recording. Call it at least once, but as many as multiple times to analyze different aspects:
from custom_tools._multimodal_tools.understand_video import understand_video
# Overall UX evaluation
ux_eval = await understand_video(
video_path=result["video_path"], # The MP4 file from Step 1
prompt="Evaluate the overall terminal display quality, clarity, and usability",
num_frames=12
)
# Focused on coordination
coordination_eval = await understand_video(
video_path=result["video_path"],
prompt="How clearly does the display show agent coordination phases and voting?",
num_frames=8
)
# Status indicators
status_eval = await understand_video(
video_path=result["video_path"],
prompt="Are status indicators (streaming, answered, voted) clear and visually distinct?",
num_frames=8
)
Key points:
- The recording tool saves the video to workspace - use that path for analysis
- You can call
understand_videomultiple times on the same video with different prompts - Each call focuses on a specific aspect (UX, coordination, status, colors, etc.)
Evaluation Criteria
When analyzing terminal dis
Content truncated.
When not to use it
- →Do not use automation mode for visual inspection of terminal display, colors, layout, or UX.
- →Do not use visual evaluation tools for testing backend functionality or coordination logic.
Limitations
- →The two workflows, automation mode and visual evaluation, are mutually exclusive.
- →Model names provided in examples are subject to change and require checking backend files for current models.
How it compares
This skill provides specific instructions for running MassGen in a programmatic, non-visual mode for functional testing, offering structured output and monitoring capabilities not present in a standard interactive run.
Compared to similar skills
massgen-develops-massgen side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| massgen-develops-massgen (this skill) | 1 | 5mo | Review | Advanced |
| unsloth | 15 | 8mo | No flags | Intermediate |
| robotics-code-generator | 14 | 8mo | No flags | Advanced |
| modal | 5 | 7mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by massgen
View all by massgen →You might also like
unsloth
zechenzhangAGI
Expert guidance for fast fine-tuning with Unsloth - 2-5x faster training, 50-80% less memory, LoRA/QLoRA optimization
robotics-code-generator
HumaizaNaz
Generates clean, runnable ROS 2, Gazebo, Isaac Sim, and VLA code for humanoid robotics
modal
davila7
Run Python code in the cloud with serverless containers, GPUs, and autoscaling. Use when deploying ML models, running batch processing jobs, scheduling compute-intensive tasks, or serving APIs that require GPU acceleration or dynamic scaling.
hugging-face-cli
patchy631
Execute Hugging Face Hub operations using the `hf` CLI. Use when the user needs to download models/datasets/spaces, upload files to Hub repositories, create repos, manage local cache, or run compute jobs on HF infrastructure. Covers authentication, file transfers, repository creation, cache operations, and cloud compute.
computer-use-agents
davila7
Build AI agents that interact with computers like humans do - viewing screens, moving cursors, clicking buttons, and typing text. Covers Anthropic's Computer Use, OpenAI's Operator/CUA, and open-source alternatives. Critical focus on sandboxing, security, and handling the unique challenges of vision-based control. Use when: computer use, desktop automation agent, screen control AI, vision-based agent, GUI automation.
machine-learning-ops-ml-pipeline
sickn33
Design and implement a complete ML pipeline for: $ARGUMENTS