- AgentHub: 13 files updated with non-engineering examples (content drafts, research, strategy) — engineering stays primary, cross-domain secondary - AgentHub: 7 slash commands, 5 Python scripts, 3 references, 1 agent, dry_run.py validation (57 checks) - Marketplace: agenthub entry added with cross-domain keywords, engineering POWERFUL updated (25→30), product (12→13), counts synced across all configs - SEO: generate-docs.py now produces keyword-rich <title> tags and meta descriptions using SKILL.md frontmatter — "Claude Code Skills" in site_name propagates to all 276 HTML pages - SEO: per-domain title suffixes (Agent Skill for Codex & OpenClaw, etc.), slug-as-title cleanup, domain label stripping from titles - Broken links: 141→0 warnings — new rewrite_skill_internal_links() converts references/, scripts/, assets/ links to GitHub source URLs; skills/index.md phantom slugs fixed (6 marketing, 7 RA/QM) - Counts synced: 204 skills, 266 tools, 382 refs, 16 agents, 17 commands, 21 plugins — consistent across CLAUDE.md, README.md, docs/index.md, marketplace.json, getting-started.md, mkdocs.yml - Platform sync: Codex 163 skills, Gemini 246 items, OpenClaw compatible Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
121 lines
4.2 KiB
Markdown
121 lines
4.2 KiB
Markdown
---
|
|
title: "/hub:run — One-Shot Lifecycle — Agent Skill for Codex & OpenClaw"
|
|
description: "One-shot lifecycle command that chains init → baseline → spawn → eval → merge in a single invocation. Agent skill for Claude Code, Codex CLI, Gemini CLI, OpenClaw."
|
|
---
|
|
|
|
# /hub:run — One-Shot Lifecycle
|
|
|
|
<div class="page-meta" markdown>
|
|
<span class="meta-badge">:material-rocket-launch: Engineering - POWERFUL</span>
|
|
<span class="meta-badge">:material-identifier: `run`</span>
|
|
<span class="meta-badge">:material-github: <a href="https://github.com/alirezarezvani/claude-skills/tree/main/engineering/agenthub/skills/run/SKILL.md">Source</a></span>
|
|
</div>
|
|
|
|
<div class="install-banner" markdown>
|
|
<span class="install-label">Install:</span> <code>claude /plugin install engineering-advanced-skills</code>
|
|
</div>
|
|
|
|
|
|
Run the full AgentHub lifecycle in one command: initialize, capture baseline, spawn agents, evaluate results, and merge the winner.
|
|
|
|
## Usage
|
|
|
|
```
|
|
/hub:run --task "Reduce p50 latency" --agents 3 \
|
|
--eval "pytest bench.py --json" --metric p50_ms --direction lower \
|
|
--template optimizer
|
|
|
|
/hub:run --task "Refactor auth module" --agents 2 --template refactorer
|
|
|
|
/hub:run --task "Cover untested utils" --agents 3 \
|
|
--eval "pytest --cov=utils --cov-report=json" --metric coverage_pct --direction higher \
|
|
--template test-writer
|
|
|
|
/hub:run --task "Write 3 email subject lines for spring sale campaign" --agents 3 --judge
|
|
```
|
|
|
|
## Parameters
|
|
|
|
| Parameter | Required | Description |
|
|
|-----------|----------|-------------|
|
|
| `--task` | Yes | Task description for agents |
|
|
| `--agents` | No | Number of parallel agents (default: 3) |
|
|
| `--eval` | No | Eval command to measure results (skip for LLM judge mode) |
|
|
| `--metric` | No | Metric name to extract from eval output (required if `--eval` given) |
|
|
| `--direction` | No | `lower` or `higher` — which direction is better (required if `--metric` given) |
|
|
| `--template` | No | Agent template: `optimizer`, `refactorer`, `test-writer`, `bug-fixer` |
|
|
|
|
## What It Does
|
|
|
|
Execute these steps sequentially:
|
|
|
|
### Step 1: Initialize
|
|
|
|
Run `/hub:init` with the provided arguments:
|
|
|
|
```bash
|
|
python {skill_path}/scripts/hub_init.py \
|
|
--task "{task}" --agents {N} \
|
|
[--eval "{eval_cmd}"] [--metric {metric}] [--direction {direction}]
|
|
```
|
|
|
|
Display the session ID to the user.
|
|
|
|
### Step 2: Capture Baseline
|
|
|
|
If `--eval` was provided:
|
|
|
|
1. Run the eval command in the current working directory
|
|
2. Extract the metric value from stdout
|
|
3. Display: `Baseline captured: {metric} = {value}`
|
|
4. Append `baseline: {value}` to `.agenthub/sessions/{session-id}/config.yaml`
|
|
|
|
If no `--eval` was provided, skip this step.
|
|
|
|
### Step 3: Spawn Agents
|
|
|
|
Run `/hub:spawn` with the session ID.
|
|
|
|
If `--template` was provided, use the template dispatch prompt from `references/agent-templates.md` instead of the default dispatch prompt. Pass the eval command, metric, and baseline to the template variables.
|
|
|
|
Launch all agents in a single message with multiple Agent tool calls (true parallelism).
|
|
|
|
### Step 4: Wait and Monitor
|
|
|
|
After spawning, inform the user that agents are running. When all agents complete (Agent tool returns results):
|
|
|
|
1. Display a brief summary of each agent's work
|
|
2. Proceed to evaluation
|
|
|
|
### Step 5: Evaluate
|
|
|
|
Run `/hub:eval` with the session ID:
|
|
|
|
- If `--eval` was provided: metric-based ranking with `result_ranker.py`
|
|
- If no `--eval`: LLM judge mode (coordinator reads diffs and ranks)
|
|
|
|
If baseline was captured, pass `--baseline {value}` to `result_ranker.py` so deltas are shown.
|
|
|
|
Display the ranked results table.
|
|
|
|
### Step 6: Confirm and Merge
|
|
|
|
Present the results to the user and ask for confirmation:
|
|
|
|
```
|
|
Agent-2 is the winner (128ms, -52ms from baseline).
|
|
Merge agent-2's branch? [Y/n]
|
|
```
|
|
|
|
If confirmed, run `/hub:merge`. If declined, inform the user they can:
|
|
- `/hub:merge --agent agent-{N}` to pick a different winner
|
|
- `/hub:eval --judge` to re-evaluate with LLM judge
|
|
- Inspect branches manually
|
|
|
|
## Critical Rules
|
|
|
|
- **Sequential execution** — each step depends on the previous
|
|
- **Stop on failure** — if any step fails, report the error and stop
|
|
- **User confirms merge** — never auto-merge without asking
|
|
- **Template is optional** — without `--template`, agents use the default dispatch prompt from `/hub:spawn`
|