Merge pull request #973 from alirezarezvani/claude/review-15-reported-issues-vrt6b2

fix: round-2 sweep — rename all built-in-shadowing skill names, harden last cp1252-fatal scripts (#885, #969 follow-through)
This commit is contained in:
Alireza Rezvani 2026-08-21 10:44:01 +02:00 committed by GitHub
commit 58346540df
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
99 changed files with 395 additions and 256 deletions

View file

@ -436,7 +436,7 @@
{
"name": "autoresearch-agent",
"source": "./engineering/autoresearch-agent",
"description": "Autonomous experiment loop — optimize any file by a measurable metric. 5 slash commands (/ar:setup, /ar:run, /ar:loop, /ar:status, /ar:resume), 8 built-in evaluators, configurable loop intervals (10min to monthly).",
"description": "Autonomous experiment loop — optimize any file by a measurable metric. 5 slash commands (/ar:setup, /ar:run, /ar:loop, /ar:ar-status, /ar:ar-resume), 8 built-in evaluators, configurable loop intervals (10min to monthly).",
"version": "2.9.0",
"author": {
"name": "Alireza Rezvani"
@ -501,7 +501,7 @@
{
"name": "agenthub",
"source": "./engineering/agenthub",
"description": "Multi-agent collaboration — spawn N parallel subagents that compete on code optimization, content drafts, research approaches, or any task that benefits from diverse solutions. 7 slash commands (/hub:init, /hub:spawn, /hub:status, /hub:eval, /hub:merge, /hub:board, /hub:run), agent templates, DAG-based orchestration, LLM judge mode, message board coordination.",
"description": "Multi-agent collaboration — spawn N parallel subagents that compete on code optimization, content drafts, research approaches, or any task that benefits from diverse solutions. 7 slash commands (/hub:hub-init, /hub:spawn, /hub:hub-status, /hub:eval, /hub:merge, /hub:board, /hub:run), agent templates, DAG-based orchestration, LLM judge mode, message board coordination.",
"version": "2.9.0",
"author": {
"name": "Alireza Rezvani"

View file

@ -599,12 +599,6 @@
"category": "engineering",
"description": "Use when a security incident has been detected or declared and needs classification, triage, escalation path determination, and forensic evidence collection. Covers SEV1-SEV4 classification, false positive filtering, incident taxonomy, and NIST SP 800-61 lifecycle."
},
{
"name": "init",
"source": "../../engineering-team/playwright-pro/skills/init",
"category": "engineering",
"description": ">-"
},
{
"name": "memory-review",
"source": "../../engineering-team/self-improving-agent/skills/memory-review",
@ -647,6 +641,18 @@
"category": "engineering",
"description": "Production-grade Playwright testing toolkit. Use when the user mentions Playwright tests, end-to-end testing, browser automation, fixing flaky tests, test migration, CI/CD testing, or test suites. Generate tests, fix flaky failures, migrate from Cypress/Selenium, sync with TestRail, run on BrowserStack. 55 templates, 3 agents, smart reporting."
},
{
"name": "pw-init",
"source": "../../engineering-team/playwright-pro/skills/pw-init",
"category": "engineering",
"description": ">-"
},
{
"name": "pw-review",
"source": "../../engineering-team/playwright-pro/skills/pw-review",
"category": "engineering",
"description": ">-"
},
{
"name": "red-team",
"source": "../../engineering-team/skills/red-team",
@ -665,12 +671,6 @@
"category": "engineering",
"description": ">-"
},
{
"name": "review",
"source": "../../engineering-team/playwright-pro/skills/review",
"category": "engineering",
"description": ">-"
},
{
"name": "security-pen-testing",
"source": "../../engineering-team/skills/security-pen-testing",
@ -833,6 +833,18 @@
"category": "engineering-advanced",
"description": "Use when the user asks to generate API tests, create integration test suites, test REST endpoints, or build contract tests."
},
{
"name": "ar-resume",
"source": "../../engineering/autoresearch-agent/skills/ar-resume",
"category": "engineering-advanced",
"description": "Resume a paused experiment. Checkout the experiment branch, read results history, continue iterating. Use when the user runs /ar:ar-resume or asks to pick up a previously started autoresearch experiment."
},
{
"name": "ar-status",
"source": "../../engineering/autoresearch-agent/skills/ar-status",
"category": "engineering-advanced",
"description": "Show experiment dashboard with results, active loops, and progress. Use when the user runs /ar:ar-status or asks how an autoresearch experiment is going."
},
{
"name": "autoresearch-agent",
"source": "../../engineering/autoresearch-agent/skills/autoresearch-agent",
@ -1026,10 +1038,16 @@
"description": "Helm chart development agent skill and plugin for Claude Code, Codex, Gemini CLI, Cursor, OpenClaw \u2014 chart scaffolding, values design, template patterns, dependency management, security hardening, and chart testing. Use when: user wants to create or improve Helm charts, design values.yaml files, implement template helpers, audit chart security (RBAC, network policies, pod security), manage subcharts, or run helm lint/test."
},
{
"name": "init",
"source": "../../engineering/agenthub/skills/init",
"name": "hub-init",
"source": "../../engineering/agenthub/skills/hub-init",
"category": "engineering-advanced",
"description": "Create a new AgentHub collaboration session with task, agent count, and evaluation criteria. Use when the user runs /hub:init or asks to start a multi-agent competition on a task."
"description": "Create a new AgentHub collaboration session with task, agent count, and evaluation criteria. Use when the user runs /hub:hub-init or asks to start a multi-agent competition on a task."
},
{
"name": "hub-status",
"source": "../../engineering/agenthub/skills/hub-status",
"category": "engineering-advanced",
"description": "Show DAG state, agent progress, and branch status for an AgentHub session. Use when the user runs /hub:hub-status or asks how the AgentHub agents are doing."
},
{
"name": "interview-system-designer",
@ -1140,10 +1158,10 @@
"description": "Use when the user asks to design a RAG pipeline, choose a chunking strategy or embedding model, pick a vector database, or evaluate retrieval quality (precision@k, recall@k, NDCG). Examples: 'design a RAG system for our docs', 'what chunk size should I use for this corpus', 'evaluate my retriever against ground truth'. NOT for general LLM cost tuning (use llm-cost-optimizer) or agent loops over retrieval (use agenthub)."
},
{
"name": "resume",
"source": "../../engineering/autoresearch-agent/skills/resume",
"name": "run",
"source": "../../engineering/autoresearch-agent/skills/run",
"category": "engineering-advanced",
"description": "Resume a paused experiment. Checkout the experiment branch, read results history, continue iterating. Use when the user runs /ar:resume or asks to pick up a previously started autoresearch experiment."
"description": "Run a single experiment iteration. Edit the target file, evaluate, keep or discard. Use when the user runs /ar:run or asks for one manual autoresearch iteration."
},
{
"name": "run",
@ -1151,12 +1169,6 @@
"category": "engineering-advanced",
"description": "One-shot lifecycle command that chains init \u2192 baseline \u2192 spawn \u2192 eval \u2192 merge in a single invocation. Use when the user runs /hub:run or asks to execute a full AgentHub competition end-to-end."
},
{
"name": "run",
"source": "../../engineering/autoresearch-agent/skills/run",
"category": "engineering-advanced",
"description": "Run a single experiment iteration. Edit the target file, evaluate, keep or discard. Use when the user runs /ar:run or asks for one manual autoresearch iteration."
},
{
"name": "runbook-generator",
"source": "../../engineering/skills/runbook-generator",
@ -1247,18 +1259,6 @@
"category": "engineering-advanced",
"description": "Run hypothesis tests, analyze A/B experiment results, calculate sample sizes, and interpret statistical significance with effect sizes. Use when you need to validate whether observed differences are real, size an experiment correctly before launch, or interpret test results with confidence."
},
{
"name": "status",
"source": "../../engineering/agenthub/skills/status",
"category": "engineering-advanced",
"description": "Show DAG state, agent progress, and branch status for an AgentHub session. Use when the user runs /hub:status or asks how the AgentHub agents are doing."
},
{
"name": "status",
"source": "../../engineering/autoresearch-agent/skills/status",
"category": "engineering-advanced",
"description": "Show experiment dashboard with results, active loops, and progress. Use when the user runs /ar:status or asks how an autoresearch experiment is going."
},
{
"name": "strict-api",
"source": "../../engineering/strict-api",

1
.codex/skills/ar-resume Symbolic link
View file

@ -0,0 +1 @@
../../engineering/autoresearch-agent/skills/ar-resume

1
.codex/skills/ar-status Symbolic link
View file

@ -0,0 +1 @@
../../engineering/autoresearch-agent/skills/ar-status

1
.codex/skills/hub-init Symbolic link
View file

@ -0,0 +1 @@
../../engineering/agenthub/skills/hub-init

1
.codex/skills/hub-status Symbolic link
View file

@ -0,0 +1 @@
../../engineering/agenthub/skills/hub-status

View file

@ -1 +0,0 @@
../../engineering/agenthub/skills/init

1
.codex/skills/pw-init Symbolic link
View file

@ -0,0 +1 @@
../../engineering-team/playwright-pro/skills/pw-init

1
.codex/skills/pw-review Symbolic link
View file

@ -0,0 +1 @@
../../engineering-team/playwright-pro/skills/pw-review

View file

@ -1 +0,0 @@
../../engineering/autoresearch-agent/skills/resume

View file

@ -1 +0,0 @@
../../engineering-team/playwright-pro/skills/review

View file

@ -1 +1 @@
../../engineering/autoresearch-agent/skills/run
../../engineering/agenthub/skills/run

View file

@ -1 +0,0 @@
../../engineering/autoresearch-agent/skills/status

View file

@ -873,6 +873,16 @@
"category": "engineering",
"description": "Production-grade Playwright testing toolkit. Use when the user mentions Playwright tests, end-to-end testing, browser automation, fixing flaky tests, test migration, CI/CD testing, or test suites. Generate tests, fix flaky failures, migrate from Cypress/Selenium, sync with TestRail, run on BrowserStack. 55 templates, 3 agents, smart reporting."
},
{
"name": "pw-init",
"category": "engineering",
"description": ">-"
},
{
"name": "pw-review",
"category": "engineering",
"description": ">-"
},
{
"name": "red-team",
"category": "engineering",
@ -888,11 +898,6 @@
"category": "engineering",
"description": ">-"
},
{
"name": "review",
"category": "engineering",
"description": ">-"
},
{
"name": "security-pen-testing",
"category": "engineering",
@ -968,11 +973,6 @@
"category": "engineering",
"description": "Use when the user asks for STRIDE threat modeling, DREAD risk scoring, data-flow-diagram threat analysis, or a quick secret scan \u2014 or when a security request needs routing to the right specialist skill (pen-testing, incident response, cloud posture, red team, AI security, threat hunting, secure code review). This skill owns threat modeling; everything else routes to a sibling."
},
{
"name": "skills-init",
"category": "engineering",
"description": ">-"
},
{
"name": "snowflake-development",
"category": "engineering",
@ -1033,6 +1033,16 @@
"category": "engineering-advanced",
"description": "Use when the user asks to generate API tests, create integration test suites, test REST endpoints, or build contract tests."
},
{
"name": "ar-resume",
"category": "engineering-advanced",
"description": "Resume a paused experiment. Checkout the experiment branch, read results history, continue iterating. Use when the user runs /ar:ar-resume or asks to pick up a previously started autoresearch experiment."
},
{
"name": "ar-status",
"category": "engineering-advanced",
"description": "Show experiment dashboard with results, active loops, and progress. Use when the user runs /ar:ar-status or asks how an autoresearch experiment is going."
},
{
"name": "autoresearch-agent",
"category": "engineering-advanced",
@ -1179,9 +1189,14 @@
"description": "Helm chart development agent skill and plugin for Claude Code, Codex, Gemini CLI, Cursor, OpenClaw \u2014 chart scaffolding, values design, template patterns, dependency management, security hardening, and chart testing. Use when: user wants to create or improve Helm charts, design values.yaml files, implement template helpers, audit chart security (RBAC, network policies, pod security), manage subcharts, or run helm lint/test."
},
{
"name": "init",
"name": "hub-init",
"category": "engineering-advanced",
"description": "Create a new AgentHub collaboration session with task, agent count, and evaluation criteria. Use when the user runs /hub:init or asks to start a multi-agent competition on a task."
"description": "Create a new AgentHub collaboration session with task, agent count, and evaluation criteria. Use when the user runs /hub:hub-init or asks to start a multi-agent competition on a task."
},
{
"name": "hub-status",
"category": "engineering-advanced",
"description": "Show DAG state, agent progress, and branch status for an AgentHub session. Use when the user runs /hub:hub-status or asks how the AgentHub agents are doing."
},
{
"name": "interview-system-designer",
@ -1268,11 +1283,6 @@
"category": "engineering-advanced",
"description": "Use when the user asks to design a RAG pipeline, choose a chunking strategy or embedding model, pick a vector database, or evaluate retrieval quality (precision@k, recall@k, NDCG). Examples: 'design a RAG system for our docs', 'what chunk size should I use for this corpus', 'evaluate my retriever against ground truth'. NOT for general LLM cost tuning (use llm-cost-optimizer) or agent loops over retrieval (use agenthub)."
},
{
"name": "resume",
"category": "engineering-advanced",
"description": "Resume a paused experiment. Checkout the experiment branch, read results history, continue iterating. Use when the user runs /ar:resume or asks to pick up a previously started autoresearch experiment."
},
{
"name": "run",
"category": "engineering-advanced",
@ -1358,11 +1368,6 @@
"category": "engineering-advanced",
"description": "Use when defining, reviewing, or operating SLOs/SLIs/error budgets. Triggers on \"define an SLO\", \"what should our SLO be\", \"error budget\", \"burn rate\", \"SLI\", \"service level objective\", \"Google SRE workbook\", \"multi-window burn-rate alert\", or any reliability-target question. Ships SLO designer, error-budget calculator with multi-window burn-rate thresholds, and SLO reviewer that catches the common bugs (target too aggressive, window too short, conflicting SLOs, no SLI definition). 4 references on SLO principles + SLI design + error budget math + composition with feature-flags-architect/chaos-engineering/kubernetes-operator. NOT a generic observability skill \u2014 specifically the SLO discipline."
},
{
"name": "skills-status",
"category": "engineering-advanced",
"description": "Show DAG state, agent progress, and branch status for an AgentHub session. Use when the user runs /hub:status or asks how the AgentHub agents are doing."
},
{
"name": "slo-architect",
"category": "engineering-advanced",
@ -1388,11 +1393,6 @@
"category": "engineering-advanced",
"description": "Run hypothesis tests, analyze A/B experiment results, calculate sample sizes, and interpret statistical significance with effect sizes. Use when you need to validate whether observed differences are real, size an experiment correctly before launch, or interpret test results with confidence."
},
{
"name": "status",
"category": "engineering-advanced",
"description": "Show experiment dashboard with results, active loops, and progress. Use when the user runs /ar:status or asks how an autoresearch experiment is going."
},
{
"name": "strict-api",
"category": "engineering-advanced",

View file

@ -0,0 +1 @@
../../../engineering/autoresearch-agent/skills/ar-resume/SKILL.md

View file

@ -0,0 +1 @@
../../../engineering/autoresearch-agent/skills/ar-status/SKILL.md

View file

@ -0,0 +1 @@
../../../engineering/agenthub/skills/hub-init/SKILL.md

View file

@ -0,0 +1 @@
../../../engineering/agenthub/skills/hub-status/SKILL.md

View file

@ -1 +0,0 @@
../../../engineering/agenthub/skills/init/SKILL.md

View file

@ -0,0 +1 @@
../../../engineering-team/playwright-pro/skills/pw-init/SKILL.md

View file

@ -0,0 +1 @@
../../../engineering-team/playwright-pro/skills/pw-review/SKILL.md

View file

@ -1 +0,0 @@
../../../engineering/autoresearch-agent/skills/resume/SKILL.md

View file

@ -1 +0,0 @@
../../../engineering-team/playwright-pro/skills/review/SKILL.md

View file

@ -1 +0,0 @@
../../../engineering-team/playwright-pro/skills/init/SKILL.md

View file

@ -1 +0,0 @@
../../../engineering-team/playwright-pro/skills/review/SKILL.md

View file

@ -1 +0,0 @@
../../../engineering/agenthub/skills/status/SKILL.md

View file

@ -1 +0,0 @@
../../../engineering/autoresearch-agent/skills/status/SKILL.md

View file

@ -92,6 +92,10 @@ jobs:
run: |
python scripts/check_plugin_json.py --all
- name: Built-in-shadowing skill names (blocking — guards #885)
run: |
python3 scripts/check_skill_names.py --all
# ---- Audit guardrails (newgen-2026-06 gates) ----------------------
# BLOCKING since PR-2 (flipped ahead of the 2026-07-01 SLA — every
# advisory run was green through PR #835). If a gate misfires on a

View file

@ -1 +0,0 @@
../../../../engineering-team/playwright-pro/skills/init

View file

@ -0,0 +1 @@
../../../../engineering-team/playwright-pro/skills/pw-init

View file

@ -0,0 +1 @@
../../../../engineering-team/playwright-pro/skills/pw-review

View file

@ -1 +0,0 @@
../../../../engineering-team/playwright-pro/skills/review

View file

@ -0,0 +1 @@
../../../../engineering/autoresearch-agent/skills/ar-resume

View file

@ -0,0 +1 @@
../../../../engineering/autoresearch-agent/skills/ar-status

View file

@ -0,0 +1 @@
../../../../engineering/agenthub/skills/hub-init

View file

@ -0,0 +1 @@
../../../../engineering/agenthub/skills/hub-status

View file

@ -1 +0,0 @@
../../../../engineering/agenthub/skills/init

View file

@ -1 +0,0 @@
../../../../engineering/autoresearch-agent/skills/resume

View file

@ -1 +0,0 @@
../../../../engineering/agenthub/skills/status

View file

@ -224,9 +224,9 @@
"path": "engineering/eval"
},
{
"name": "init",
"name": "hub-init",
"description": "Create a new AgentHub collaboration session with task, agent count, and evaluation criteria.",
"path": "engineering/init"
"path": "engineering/hub-init"
},
{
"name": "merge",
@ -244,9 +244,9 @@
"path": "engineering/spawn"
},
{
"name": "status",
"name": "hub-status",
"description": "Show DAG state, agent progress, and branch status for an AgentHub session.",
"path": "engineering/status"
"path": "engineering/hub-status"
},
{
"name": "autoresearch-agent",
@ -259,9 +259,9 @@
"path": "engineering/loop"
},
{
"name": "resume",
"name": "ar-resume",
"description": "Resume a paused experiment. Checkout the experiment branch, read results history, continue iterating.",
"path": "engineering/resume"
"path": "engineering/ar-resume"
},
{
"name": "run",
@ -273,11 +273,6 @@
"description": "Set up a new autoresearch experiment interactively. Collects domain, target file, eval command, metric, direction, and evaluator.",
"path": "engineering/setup"
},
{
"name": "status",
"description": "Show experiment dashboard with results, active loops, and progress.",
"path": "engineering/status"
},
{
"name": "behuman",
"description": "Use when the user wants more human-like AI responses — less robotic, less listy, more authentic. Triggers: 'behuman', 'be real', 'like a human', 'more human', 'less AI', 'talk like a person', 'mirror mode', 'stop being so AI', or when conversations are emotionally charged (grief, job loss, relationship advice, fear). NOT for technical questions, code generation, or factual lookups.",
@ -387,6 +382,11 @@
"name": "write-a-skill",
"description": "Create new agent skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, build, or author a new skill.",
"path": "engineering/write-a-skill"
},
{
"name": "ar-status",
"description": "Show experiment dashboard with results, active loops, and progress. Use when the user runs /ar:ar-status or asks how an autoresearch experiment is going.",
"path": "engineering/ar-status"
}
],
"engineering-team": [
@ -581,9 +581,9 @@
"path": "engineering-team/generate"
},
{
"name": "init",
"name": "pw-init",
"description": ">-",
"path": "engineering-team/init"
"path": "engineering-team/pw-init"
},
{
"name": "migrate",
@ -601,9 +601,9 @@
"path": "engineering-team/report"
},
{
"name": "review",
"name": "pw-review",
"description": ">-",
"path": "engineering-team/review"
"path": "engineering-team/pw-review"
},
{
"name": "testrail",

View file

@ -1 +0,0 @@
../../../../engineering-team/playwright-pro/skills/init

View file

@ -0,0 +1 @@
../../../../engineering-team/playwright-pro/skills/pw-init

View file

@ -0,0 +1 @@
../../../../engineering-team/playwright-pro/skills/pw-review

View file

@ -1 +0,0 @@
../../../../engineering-team/playwright-pro/skills/review

View file

@ -0,0 +1 @@
../../../../engineering/autoresearch-agent/skills/ar-resume

View file

@ -0,0 +1 @@
../../../../engineering/autoresearch-agent/skills/ar-status

View file

@ -0,0 +1 @@
../../../../engineering/agenthub/skills/hub-init

View file

@ -0,0 +1 @@
../../../../engineering/agenthub/skills/hub-status

View file

@ -1 +0,0 @@
../../../../engineering/agenthub/skills/init

View file

@ -1 +0,0 @@
../../../../engineering/autoresearch-agent/skills/resume

View file

@ -1 +0,0 @@
../../../../engineering/agenthub/skills/status

View file

@ -224,9 +224,9 @@
"path": "engineering/eval"
},
{
"name": "init",
"name": "hub-init",
"description": "Create a new AgentHub collaboration session with task, agent count, and evaluation criteria.",
"path": "engineering/init"
"path": "engineering/hub-init"
},
{
"name": "merge",
@ -244,9 +244,9 @@
"path": "engineering/spawn"
},
{
"name": "status",
"name": "hub-status",
"description": "Show DAG state, agent progress, and branch status for an AgentHub session.",
"path": "engineering/status"
"path": "engineering/hub-status"
},
{
"name": "autoresearch-agent",
@ -259,9 +259,9 @@
"path": "engineering/loop"
},
{
"name": "resume",
"name": "ar-resume",
"description": "Resume a paused experiment. Checkout the experiment branch, read results history, continue iterating.",
"path": "engineering/resume"
"path": "engineering/ar-resume"
},
{
"name": "run",
@ -273,11 +273,6 @@
"description": "Set up a new autoresearch experiment interactively. Collects domain, target file, eval command, metric, direction, and evaluator.",
"path": "engineering/setup"
},
{
"name": "status",
"description": "Show experiment dashboard with results, active loops, and progress.",
"path": "engineering/status"
},
{
"name": "behuman",
"description": "Use when the user wants more human-like AI responses — less robotic, less listy, more authentic. Triggers: 'behuman', 'be real', 'like a human', 'more human', 'less AI', 'talk like a person', 'mirror mode', 'stop being so AI', or when conversations are emotionally charged (grief, job loss, relationship advice, fear). NOT for technical questions, code generation, or factual lookups.",
@ -397,6 +392,11 @@
"name": "write-a-skill",
"description": "Create new agent skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, build, or author a new skill.",
"path": "engineering/write-a-skill"
},
{
"name": "ar-status",
"description": "Show experiment dashboard with results, active loops, and progress. Use when the user runs /ar:ar-status or asks how an autoresearch experiment is going.",
"path": "engineering/ar-status"
}
],
"engineering-team": [
@ -591,9 +591,9 @@
"path": "engineering-team/generate"
},
{
"name": "init",
"name": "pw-init",
"description": ">-",
"path": "engineering-team/init"
"path": "engineering-team/pw-init"
},
{
"name": "migrate",
@ -611,9 +611,9 @@
"path": "engineering-team/report"
},
{
"name": "review",
"name": "pw-review",
"description": ">-",
"path": "engineering-team/review"
"path": "engineering-team/pw-review"
},
{
"name": "testrail",

View file

@ -8,7 +8,7 @@ The DNA of every skill in this repository. Follow this standard when creating ne
```markdown
---
name: skill-name
name: skill-name # NEVER a bare Claude Code built-in command word (status, review, init, resume, config, help, ...) — it shadows the built-in for every installer (issue #885). Use a namespaced leaf like memory-status / pw-review; scripts/check_skill_names.py enforces this in CI.
description: "When to use this skill. Include trigger keywords and phrases users might say. Mention related skills for disambiguation."
license: MIT
metadata:

View file

@ -40,9 +40,9 @@ Audited: 2026-06-10 · Skills: 51 · Agents: 5 · Commands: 0 · Plugins: 6
| google-workspace-cli/skills/google-workspace-cli | REWRITE | install coordinates almost certainly fabricated (`npm i -g @anthropic/gws`, `github.com/googleworkspace/cli`) |
| snowflake-development/skills/snowflake-development | KEEP | — |
| playwright-pro/skills/pw | KEEP | — |
| playwright-pro/skills/init | KEEP | — |
| playwright-pro/skills/pw-init | KEEP | — |
| playwright-pro/skills/generate | KEEP | — |
| playwright-pro/skills/review | KEEP | — |
| playwright-pro/skills/pw-review | KEEP | — |
| playwright-pro/skills/fix | KEEP | — |
| playwright-pro/skills/migrate | KEEP | — |
| playwright-pro/skills/coverage | KEEP | — |

View file

@ -8,7 +8,7 @@ description: "Set up Playwright in a project. Use when user says 'set up playwri
<div class="page-meta" markdown>
<span class="meta-badge">:material-code-braces: Engineering - Core</span>
<span class="meta-badge">:material-identifier: `init`</span>
<span class="meta-badge">:material-github: <a href="https://github.com/alirezarezvani/claude-skills/tree/main/engineering-team/playwright-pro/skills/init/SKILL.md">Source</a></span>
<span class="meta-badge">:material-github: <a href="https://github.com/alirezarezvani/claude-skills/tree/main/engineering-team/playwright-pro/skills/pw-init/SKILL.md">Source</a></span>
</div>
<div class="install-banner" markdown>

View file

@ -55,7 +55,7 @@ Migration Assessment:
### 3. Set Up Playwright (If Not Present)
Run `/pw:init` first if Playwright isn't configured.
Run `/pw:pw-init` first if Playwright isn't configured.
### 4. Convert Files

View file

@ -24,9 +24,9 @@ When installed as a Claude Code plugin, these are available as `/pw:` commands:
| Command | What it does |
|---|---|
| `/pw:init` | Set up Playwright — detects framework, generates config, CI, first test |
| `/pw:pw-init` | Set up Playwright — detects framework, generates config, CI, first test |
| `/pw:generate <spec>` | Generate tests from user story, URL, or component |
| `/pw:review` | Review tests for anti-patterns and coverage gaps |
| `/pw:pw-review` | Review tests for anti-patterns and coverage gaps |
| `/pw:fix <test>` | Diagnose and fix failing or flaky tests |
| `/pw:migrate` | Migrate from Cypress or Selenium to Playwright |
| `/pw:coverage` | Analyze what's tested vs. what's missing |
@ -39,14 +39,14 @@ When installed as a Claude Code plugin, these are available as `/pw:` commands:
The recommended sequence for most projects:
```
1. /pw:init → scaffolds config, CI pipeline, and a first smoke test
1. /pw:pw-init → scaffolds config, CI pipeline, and a first smoke test
2. /pw:generate → generates tests from your spec or URL
3. /pw:review → validates quality and flags anti-patterns ← always run after generate
3. /pw:pw-review → validates quality and flags anti-patterns ← always run after generate
4. /pw:fix <test> → diagnoses and repairs any failing/flaky tests ← run when CI turns red
```
**Validation checkpoints:**
- After `/pw:generate` — always run `/pw:review` before committing; it catches locator anti-patterns and missing assertions automatically.
- After `/pw:generate` — always run `/pw:pw-review` before committing; it catches locator anti-patterns and missing assertions automatically.
- After `/pw:fix` — re-run the full suite locally (`npx playwright test`) to confirm the fix doesn't introduce regressions.
- After `/pw:migrate` — run `/pw:coverage` to confirm parity with the old suite before decommissioning Cypress/Selenium tests.
@ -60,7 +60,7 @@ The recommended sequence for most projects:
# → Playwright Pro creates the file using the auth template.
# 2. Review the generated tests
/pw:review tests/auth/login.spec.ts
/pw:pw-review tests/auth/login.spec.ts
# → Flags: one test used page.locator('input[type=password]') — suggests getByLabel('Password')
# → Fix applied automatically.

View file

@ -8,7 +8,7 @@ description: "Review Playwright tests for quality. Use when user says 'review te
<div class="page-meta" markdown>
<span class="meta-badge">:material-code-braces: Engineering - Core</span>
<span class="meta-badge">:material-identifier: `review`</span>
<span class="meta-badge">:material-github: <a href="https://github.com/alirezarezvani/claude-skills/tree/main/engineering-team/playwright-pro/skills/review/SKILL.md">Source</a></span>
<span class="meta-badge">:material-github: <a href="https://github.com/alirezarezvani/claude-skills/tree/main/engineering-team/playwright-pro/skills/pw-review/SKILL.md">Source</a></span>
</div>
<div class="install-banner" markdown>

View file

@ -24,9 +24,9 @@ When installed as a Claude Code plugin, these are available as `/pw:` commands:
| Command | What it does |
|---|---|
| `/pw:init` | Set up Playwright — detects framework, generates config, CI, first test |
| `/pw:pw-init` | Set up Playwright — detects framework, generates config, CI, first test |
| `/pw:generate <spec>` | Generate tests from user story, URL, or component |
| `/pw:review` | Review tests for anti-patterns and coverage gaps |
| `/pw:pw-review` | Review tests for anti-patterns and coverage gaps |
| `/pw:fix <test>` | Diagnose and fix failing or flaky tests |
| `/pw:migrate` | Migrate from Cypress or Selenium to Playwright |
| `/pw:coverage` | Analyze what's tested vs. what's missing |
@ -39,14 +39,14 @@ When installed as a Claude Code plugin, these are available as `/pw:` commands:
The recommended sequence for most projects:
```
1. /pw:init → scaffolds config, CI pipeline, and a first smoke test
1. /pw:pw-init → scaffolds config, CI pipeline, and a first smoke test
2. /pw:generate → generates tests from your spec or URL
3. /pw:review → validates quality and flags anti-patterns ← always run after generate
3. /pw:pw-review → validates quality and flags anti-patterns ← always run after generate
4. /pw:fix <test> → diagnoses and repairs any failing/flaky tests ← run when CI turns red
```
**Validation checkpoints:**
- After `/pw:generate` — always run `/pw:review` before committing; it catches locator anti-patterns and missing assertions automatically.
- After `/pw:generate` — always run `/pw:pw-review` before committing; it catches locator anti-patterns and missing assertions automatically.
- After `/pw:fix` — re-run the full suite locally (`npx playwright test`) to confirm the fix doesn't introduce regressions.
- After `/pw:migrate` — run `/pw:coverage` to confirm parity with the old suite before decommissioning Cypress/Selenium tests.
@ -60,7 +60,7 @@ The recommended sequence for most projects:
# → Playwright Pro creates the file using the auth template.
# 2. Review the generated tests
/pw:review tests/auth/login.spec.ts
/pw:pw-review tests/auth/login.spec.ts
# → Flags: one test used page.locator('input[type=password]') — suggests getByLabel('Password')
# → Fix applied automatically.

View file

@ -1,14 +1,14 @@
---
title: "/hub:init — Create New Session — Agent Skill for Codex & OpenClaw"
description: "Create a new AgentHub collaboration session with task, agent count, and evaluation criteria. Use when the user runs /hub:init or asks to start a. Agent skill for Claude Code, Codex CLI, Gemini CLI, OpenClaw."
title: "/hub:hub-init — Create New Session — Agent Skill for Codex & OpenClaw"
description: "Create a new AgentHub collaboration session with task, agent count, and evaluation criteria. Use when the user runs /hub:hub-init or asks to start a. Agent skill for Claude Code, Codex CLI, Gemini CLI, OpenClaw."
---
# /hub:init — Create New Session
# /hub:hub-init — Create New Session
<div class="page-meta" markdown>
<span class="meta-badge">:material-rocket-launch: Engineering - POWERFUL</span>
<span class="meta-badge">:material-identifier: `init`</span>
<span class="meta-badge">:material-github: <a href="https://github.com/alirezarezvani/claude-skills/tree/main/engineering/agenthub/skills/init/SKILL.md">Source</a></span>
<span class="meta-badge">:material-github: <a href="https://github.com/alirezarezvani/claude-skills/tree/main/engineering/agenthub/skills/hub-init/SKILL.md">Source</a></span>
</div>
<div class="install-banner" markdown>
@ -21,9 +21,9 @@ Initialize an AgentHub collaboration session. Creates the `.agenthub/` directory
## Usage
```
/hub:init # Interactive mode
/hub:init --task "Optimize API" --agents 3 --eval "pytest bench.py" --metric p50_ms --direction lower
/hub:init --task "Refactor auth" --agents 2 # No eval (LLM judge mode)
/hub:hub-init # Interactive mode
/hub:hub-init --task "Optimize API" --agents 3 --eval "pytest bench.py" --metric p50_ms --direction lower
/hub:hub-init --task "Refactor auth" --agents 2 # No eval (LLM judge mode)
```
## What It Does

View file

@ -51,7 +51,7 @@ Execute these steps sequentially:
### Step 1: Initialize
Run `/hub:init` with the provided arguments:
Run `/hub:hub-init` with the provided arguments:
```bash
python {skill_path}/scripts/hub_init.py \

View file

@ -89,5 +89,5 @@ python {skill_path}/scripts/session_manager.py --update {session-id} --state run
Tell the user:
- {N} agents launched in parallel
- Each working in an isolated worktree
- Monitor with `/hub:status`
- Monitor with `/hub:hub-status`
- Evaluate when done with `/hub:eval`

View file

@ -1,14 +1,14 @@
---
title: "/hub:status — Session Status — Agent Skill for Codex & OpenClaw"
description: "Show DAG state, agent progress, and branch status for an AgentHub session. Use when the user runs /hub:status or asks how the AgentHub agents are. Agent skill for Claude Code, Codex CLI, Gemini CLI, OpenClaw."
title: "/hub:hub-status — Session Status — Agent Skill for Codex & OpenClaw"
description: "Show DAG state, agent progress, and branch status for an AgentHub session. Use when the user runs /hub:hub-status or asks how the AgentHub agents are. Agent skill for Claude Code, Codex CLI, Gemini CLI, OpenClaw."
---
# /hub:status — Session Status
# /hub:hub-status — Session Status
<div class="page-meta" markdown>
<span class="meta-badge">:material-rocket-launch: Engineering - POWERFUL</span>
<span class="meta-badge">:material-identifier: `status`</span>
<span class="meta-badge">:material-github: <a href="https://github.com/alirezarezvani/claude-skills/tree/main/engineering/agenthub/skills/status/SKILL.md">Source</a></span>
<span class="meta-badge">:material-github: <a href="https://github.com/alirezarezvani/claude-skills/tree/main/engineering/agenthub/skills/hub-status/SKILL.md">Source</a></span>
</div>
<div class="install-banner" markdown>
@ -21,8 +21,8 @@ Display the current state of an AgentHub session: agent branches, commit counts,
## Usage
```
/hub:status # Status for latest session
/hub:status 20260317-143022 # Status for specific session
/hub:hub-status # Status for latest session
/hub:hub-status 20260317-143022 # Status for specific session
```
## What It Does

View file

@ -22,9 +22,9 @@ Spawn N parallel AI agents that compete on the same task. Each agent works in an
| Command | Description |
|---------|-------------|
| `/hub:init` | Create a new collaboration session — task, agent count, eval criteria |
| `/hub:hub-init` | Create a new collaboration session — task, agent count, eval criteria |
| `/hub:spawn` | Launch N parallel subagents in isolated worktrees |
| `/hub:status` | Show DAG state, agent progress, branch status |
| `/hub:hub-status` | Show DAG state, agent progress, branch status |
| `/hub:eval` | Rank agent results by metric or LLM judge |
| `/hub:merge` | Merge winning branch, archive losers |
| `/hub:board` | Read/write the agent message board |
@ -67,7 +67,7 @@ INIT → DISPATCH → MONITOR → EVALUATE → MERGE
### 1. Init
Run `/hub:init` to create a session. This generates:
Run `/hub:hub-init` to create a session. This generates:
- `.agenthub/sessions/{session-id}/config.yaml` — task config
- `.agenthub/sessions/{session-id}/state.json` — state machine
- `.agenthub/board/` — message board channels
@ -81,7 +81,7 @@ Run `/hub:spawn` to launch agents. For each agent 1..N:
### 3. Monitor
Run `/hub:status` to check progress:
Run `/hub:hub-status` to check progress:
- `dag_analyzer.py --status --session {id}` shows branch state
- Board `progress/` channel has agent updates

View file

@ -109,7 +109,7 @@ Loop started for {domain}/{name}
Cron ID: {id}
Auto-expires: 3 days (CronCreate limit)
To check progress: /ar:status
To check progress: /ar:ar-status
To stop the loop: /ar:loop stop {domain}/{name}
Note: Recurring jobs auto-expire after 3 days.

View file

@ -1,14 +1,14 @@
---
title: "/ar:resume — Resume Experiment — Agent Skill for Codex & OpenClaw"
description: "Resume a paused experiment. Checkout the experiment branch, read results history, continue iterating. Use when the user runs /ar:resume or asks to. Agent skill for Claude Code, Codex CLI, Gemini CLI, OpenClaw."
title: "/ar:ar-resume — Resume Experiment — Agent Skill for Codex & OpenClaw"
description: "Resume a paused experiment. Checkout the experiment branch, read results history, continue iterating. Use when the user runs /ar:ar-resume or asks to. Agent skill for Claude Code, Codex CLI, Gemini CLI, OpenClaw."
---
# /ar:resume — Resume Experiment
# /ar:ar-resume — Resume Experiment
<div class="page-meta" markdown>
<span class="meta-badge">:material-rocket-launch: Engineering - POWERFUL</span>
<span class="meta-badge">:material-identifier: `resume`</span>
<span class="meta-badge">:material-github: <a href="https://github.com/alirezarezvani/claude-skills/tree/main/engineering/autoresearch-agent/skills/resume/SKILL.md">Source</a></span>
<span class="meta-badge">:material-github: <a href="https://github.com/alirezarezvani/claude-skills/tree/main/engineering/autoresearch-agent/skills/ar-resume/SKILL.md">Source</a></span>
</div>
<div class="install-banner" markdown>
@ -21,8 +21,8 @@ Resume a paused or context-limited experiment. Reads all history and continues w
## Usage
```
/ar:resume # List experiments, let user pick
/ar:resume engineering/api-speed # Resume specific experiment
/ar:ar-resume # List experiments, let user pick
/ar:ar-resume engineering/api-speed # Resume specific experiment
```
## What It Does

View file

@ -1,14 +1,14 @@
---
title: "/ar:status — Experiment Dashboard — Agent Skill for Codex & OpenClaw"
description: "Show experiment dashboard with results, active loops, and progress. Use when the user runs /ar:status or asks how an autoresearch experiment is going. Agent skill for Claude Code, Codex CLI, Gemini CLI, OpenClaw."
title: "/ar:ar-status — Experiment Dashboard — Agent Skill for Codex & OpenClaw"
description: "Show experiment dashboard with results, active loops, and progress. Use when the user runs /ar:ar-status or asks how an autoresearch experiment is going. Agent skill for Claude Code, Codex CLI, Gemini CLI, OpenClaw."
---
# /ar:status — Experiment Dashboard
# /ar:ar-status — Experiment Dashboard
<div class="page-meta" markdown>
<span class="meta-badge">:material-rocket-launch: Engineering - POWERFUL</span>
<span class="meta-badge">:material-identifier: `status`</span>
<span class="meta-badge">:material-github: <a href="https://github.com/alirezarezvani/claude-skills/tree/main/engineering/autoresearch-agent/skills/status/SKILL.md">Source</a></span>
<span class="meta-badge">:material-github: <a href="https://github.com/alirezarezvani/claude-skills/tree/main/engineering/autoresearch-agent/skills/ar-status/SKILL.md">Source</a></span>
</div>
<div class="install-banner" markdown>
@ -21,11 +21,11 @@ Show experiment results, active loops, and progress across all experiments.
## Usage
```
/ar:status # Full dashboard
/ar:status engineering/api-speed # Single experiment detail
/ar:status --domain engineering # All experiments in a domain
/ar:status --format markdown # Export as markdown
/ar:status --format csv --output results.csv # Export as CSV
/ar:ar-status # Full dashboard
/ar:ar-status engineering/api-speed # Single experiment detail
/ar:ar-status --domain engineering # All experiments in a domain
/ar:ar-status --format markdown # Export as markdown
/ar:ar-status --format csv --output results.csv # Export as CSV
```
## What It Does

View file

@ -31,8 +31,8 @@ Not one guess — fifty measured attempts, compounding.
| `/ar:setup` | Set up a new experiment interactively |
| `/ar:run` | Run a single experiment iteration |
| `/ar:loop` | Start autonomous loop with configurable interval (10m, 1h, daily, weekly, monthly) |
| `/ar:status` | Show dashboard and results |
| `/ar:resume` | Resume a paused experiment |
| `/ar:ar-status` | Show dashboard and results |
| `/ar:ar-resume` | Resume a paused experiment |
---

View file

@ -68,7 +68,7 @@ Leverage Claude Code's built-in capabilities:
- **Large migrations**: Use `/batch` for parallel file-by-file conversion
- **Post-generation cleanup**: Use `/simplify` after generating a test suite
- **Debugging sessions**: Use `/debug` alongside `/pw:fix` for trace analysis
- **Code review**: Use `/review` for general code quality, `/pw:review` for Playwright-specific
- **Code review**: Use `/review` for general code quality, `/pw:pw-review` for Playwright-specific
### Integrations

View file

@ -18,9 +18,9 @@ claude --plugin-dir ./engineering-team/playwright-pro
| Command | What it does |
|---|---|
| `/pw:init` | Set up Playwright in your project — detects framework, generates config, CI, first test |
| `/pw:pw-init` | Set up Playwright in your project — detects framework, generates config, CI, first test |
| `/pw:generate <spec>` | Generate tests from a user story, URL, or component name |
| `/pw:review` | Review existing tests for anti-patterns and coverage gaps |
| `/pw:pw-review` | Review existing tests for anti-patterns and coverage gaps |
| `/pw:fix <test>` | Diagnose and fix a failing or flaky test |
| `/pw:migrate` | Migrate from Cypress or Selenium to Playwright |
| `/pw:coverage` | Analyze what's tested vs. what's missing |
@ -32,7 +32,7 @@ claude --plugin-dir ./engineering-team/playwright-pro
```bash
# In Claude Code:
/pw:init # Set up Playwright
/pw:pw-init # Set up Playwright
/pw:generate "user can log in" # Generate your first test
# Tests are auto-validated by hooks — no extra steps
```
@ -116,7 +116,7 @@ Playwright Pro doesn't reinvent what your AI agent already does. It orchestrates
- `/pw:generate` uses Claude's `Explore` subagent to understand your codebase before generating tests
- `/pw:migrate` uses `/batch` for parallel file-by-file conversion on large test suites
- `/pw:fix` uses `/debug` for trace analysis alongside Playwright-specific diagnostics
- `/pw:review` extends `/review` with Playwright anti-pattern detection
- `/pw:pw-review` extends `/review` with Playwright anti-pattern detection
## Reference

View file

@ -47,7 +47,7 @@ Migration Assessment:
### 3. Set Up Playwright (If Not Present)
Run `/pw:init` first if Playwright isn't configured.
Run `/pw:pw-init` first if Playwright isn't configured.
### 4. Convert Files

View file

@ -1,5 +1,5 @@
---
name: "init"
name: "pw-init"
description: >-
Set up Playwright in a project. Use when user says "set up playwright",
"add e2e tests", "configure playwright", "testing setup", "init playwright",

View file

@ -1,5 +1,5 @@
---
name: "review"
name: "pw-review"
description: >-
Review Playwright tests for quality. Use when user says "review tests",
"check test quality", "audit tests", "improve tests", "test code review",

View file

@ -13,9 +13,9 @@ When installed as a Claude Code plugin, these are available as `/pw:` commands:
| Command | What it does |
|---|---|
| `/pw:init` | Set up Playwright — detects framework, generates config, CI, first test |
| `/pw:pw-init` | Set up Playwright — detects framework, generates config, CI, first test |
| `/pw:generate <spec>` | Generate tests from user story, URL, or component |
| `/pw:review` | Review tests for anti-patterns and coverage gaps |
| `/pw:pw-review` | Review tests for anti-patterns and coverage gaps |
| `/pw:fix <test>` | Diagnose and fix failing or flaky tests |
| `/pw:migrate` | Migrate from Cypress or Selenium to Playwright |
| `/pw:coverage` | Analyze what's tested vs. what's missing |
@ -28,14 +28,14 @@ When installed as a Claude Code plugin, these are available as `/pw:` commands:
The recommended sequence for most projects:
```
1. /pw:init → scaffolds config, CI pipeline, and a first smoke test
1. /pw:pw-init → scaffolds config, CI pipeline, and a first smoke test
2. /pw:generate → generates tests from your spec or URL
3. /pw:review → validates quality and flags anti-patterns ← always run after generate
3. /pw:pw-review → validates quality and flags anti-patterns ← always run after generate
4. /pw:fix <test> → diagnoses and repairs any failing/flaky tests ← run when CI turns red
```
**Validation checkpoints:**
- After `/pw:generate` — always run `/pw:review` before committing; it catches locator anti-patterns and missing assertions automatically.
- After `/pw:generate` — always run `/pw:pw-review` before committing; it catches locator anti-patterns and missing assertions automatically.
- After `/pw:fix` — re-run the full suite locally (`npx playwright test`) to confirm the fix doesn't introduce regressions.
- After `/pw:migrate` — run `/pw:coverage` to confirm parity with the old suite before decommissioning Cypress/Selenium tests.
@ -49,7 +49,7 @@ The recommended sequence for most projects:
# → Playwright Pro creates the file using the auth template.
# 2. Review the generated tests
/pw:review tests/auth/login.spec.ts
/pw:pw-review tests/auth/login.spec.ts
# → Flags: one test used page.locator('input[type=password]') — suggests getByLabel('Password')
# → Fix applied automatically.

View file

@ -204,7 +204,7 @@
},
{
"name": "init",
"path": "engineering-team/playwright-pro/skills/init",
"path": "engineering-team/playwright-pro/skills/pw-init",
"description": ">- Set up Playwright in a project. Use when user says \"set up playwright\", \"add e2e tests\", \"configure playwright\", \"testing setup\", \"init playwright\", or \"add test infrastructure\".",
"tools": [],
"agentic_signals": {
@ -260,7 +260,7 @@
},
{
"name": "review",
"path": "engineering-team/playwright-pro/skills/review",
"path": "engineering-team/playwright-pro/skills/pw-review",
"description": ">- Review Playwright tests for quality. Use when user says \"review tests\", \"check test quality\", \"audit tests\", \"improve tests\", \"test code review\", or \"playwright best practices check\".",
"tools": [],
"agentic_signals": {

View file

@ -204,8 +204,8 @@
},
{
"name": "init",
"path": "engineering/agenthub/skills/init",
"description": "Create a new AgentHub collaboration session with task, agent count, and evaluation criteria. Use when the user runs /hub:init or asks to start a multi-agent competition on a task.",
"path": "engineering/agenthub/skills/hub-init",
"description": "Create a new AgentHub collaboration session with task, agent count, and evaluation criteria. Use when the user runs /hub:hub-init or asks to start a multi-agent competition on a task.",
"tools": [],
"agentic_signals": {
"goal_intake": false,
@ -260,8 +260,8 @@
},
{
"name": "status",
"path": "engineering/agenthub/skills/status",
"description": "Show DAG state, agent progress, and branch status for an AgentHub session. Use when the user runs /hub:status or asks how the AgentHub agents are doing.",
"path": "engineering/agenthub/skills/hub-status",
"description": "Show DAG state, agent progress, and branch status for an AgentHub session. Use when the user runs /hub:hub-status or asks how the AgentHub agents are doing.",
"tools": [],
"agentic_signals": {
"goal_intake": false,
@ -342,8 +342,8 @@
},
{
"name": "resume",
"path": "engineering/autoresearch-agent/skills/resume",
"description": "Resume a paused experiment. Checkout the experiment branch, read results history, continue iterating. Use when the user runs /ar:resume or asks to pick up a previously started autoresearch experiment.",
"path": "engineering/autoresearch-agent/skills/ar-resume",
"description": "Resume a paused experiment. Checkout the experiment branch, read results history, continue iterating. Use when the user runs /ar:ar-resume or asks to pick up a previously started autoresearch experiment.",
"tools": [],
"agentic_signals": {
"goal_intake": false,
@ -384,8 +384,8 @@
},
{
"name": "status",
"path": "engineering/autoresearch-agent/skills/status",
"description": "Show experiment dashboard with results, active loops, and progress. Use when the user runs /ar:status or asks how an autoresearch experiment is going.",
"path": "engineering/autoresearch-agent/skills/ar-status",
"description": "Show experiment dashboard with results, active loops, and progress. Use when the user runs /ar:ar-status or asks how an autoresearch experiment is going.",
"tools": [],
"agentic_signals": {
"goal_intake": false,

View file

@ -6,9 +6,9 @@ This plugin enables multi-agent collaboration. Spawn N parallel subagents that c
Use the `/hub:` namespace for all commands:
- `/hub:init` — Create a new collaboration session (task, agent count, eval criteria)
- `/hub:hub-init` — Create a new collaboration session (task, agent count, eval criteria)
- `/hub:spawn` — Launch N parallel subagents in isolated worktrees (supports `--template`)
- `/hub:status` — Show DAG state, agent progress, and branch status
- `/hub:hub-status` — Show DAG state, agent progress, and branch status
- `/hub:eval` — Rank agent results by metric or LLM judge
- `/hub:merge` — Merge the winning branch, archive losers
- `/hub:board` — Read/write the agent message board
@ -18,7 +18,7 @@ Use the `/hub:` namespace for all commands:
You (the coordinator) orchestrate N subagents working in parallel:
1. `/hub:init` — define the task, number of agents, and evaluation criteria
1. `/hub:hub-init` — define the task, number of agents, and evaluation criteria
2. `/hub:spawn` — launch all agents simultaneously via the Agent tool with `isolation: "worktree"`
3. Each agent works independently in its own git worktree, commits results, writes to the board
4. `/hub:eval` — compare results (run eval command per worktree, or LLM-judge diffs)

View file

@ -15,14 +15,14 @@ Or step by step:
```bash
# 1. Initialize a session — define the task, agent count, and evaluation criteria
/hub:init --task "Reduce API p50 latency" --agents 3 \
/hub:hub-init --task "Reduce API p50 latency" --agents 3 \
--eval "pytest bench.py --json" --metric p50_ms --direction lower
# 2. Spawn agents — launches 3 parallel agents in isolated worktrees
/hub:spawn --template optimizer
# 3. Check progress
/hub:status
/hub:hub-status
# 4. Evaluate — rank agents by metric
/hub:eval
@ -35,9 +35,9 @@ Or step by step:
| Command | Purpose | Example |
|---------|---------|---------|
| `/hub:init` | Create session with task, agents, eval criteria | `/hub:init --task "Optimize DB queries" --agents 4 --eval "python bench.py" --metric query_ms --direction lower` |
| `/hub:hub-init` | Create session with task, agents, eval criteria | `/hub:hub-init --task "Optimize DB queries" --agents 4 --eval "python bench.py" --metric query_ms --direction lower` |
| `/hub:spawn` | Launch all agents in parallel worktrees | `/hub:spawn` (uses latest session) |
| `/hub:status` | Show DAG state, branches, progress posts | `/hub:status` |
| `/hub:hub-status` | Show DAG state, branches, progress posts | `/hub:hub-status` |
| `/hub:eval` | Rank results by metric or LLM judge | `/hub:eval --judge` (LLM judge mode) |
| `/hub:merge` | Merge winner, archive losers, cleanup | `/hub:merge --agent agent-2` (force pick) |
| `/hub:board` | Read/write the message board | `/hub:board --read progress` |
@ -212,7 +212,7 @@ openclaw install agenthub
### Session Model
Each `/hub:init` creates a session with a timestamp-based ID (`YYYYMMDD-HHMMSS`). Sessions progress through states:
Each `/hub:hub-init` creates a session with a timestamp-based ID (`YYYYMMDD-HHMMSS`). Sessions progress through states:
```
init → running → evaluating → merged

View file

@ -10,9 +10,9 @@
"tags": ["multi-agent", "collaboration", "parallel", "git-dag", "orchestration", "competition", "content-generation", "research", "optimization"],
"repository": "https://github.com/alirezarezvani/claude-skills",
"commands": {
"init": "/hub:init",
"init": "/hub:hub-init",
"spawn": "/hub:spawn",
"status": "/hub:status",
"status": "/hub:hub-status",
"eval": "/hub:eval",
"merge": "/hub:merge",
"board": "/hub:board",

View file

@ -17,9 +17,9 @@ Spawn N parallel AI agents that compete on the same task. Each agent works in an
| Command | Description |
|---------|-------------|
| `/hub:init` | Create a new collaboration session — task, agent count, eval criteria |
| `/hub:hub-init` | Create a new collaboration session — task, agent count, eval criteria |
| `/hub:spawn` | Launch N parallel subagents in isolated worktrees |
| `/hub:status` | Show DAG state, agent progress, branch status |
| `/hub:hub-status` | Show DAG state, agent progress, branch status |
| `/hub:eval` | Rank agent results by metric or LLM judge |
| `/hub:merge` | Merge winning branch, archive losers |
| `/hub:board` | Read/write the agent message board |
@ -62,7 +62,7 @@ INIT → DISPATCH → MONITOR → EVALUATE → MERGE
### 1. Init
Run `/hub:init` to create a session. This generates:
Run `/hub:hub-init` to create a session. This generates:
- `.agenthub/sessions/{session-id}/config.yaml` — task config
- `.agenthub/sessions/{session-id}/state.json` — state machine
- `.agenthub/board/` — message board channels
@ -76,7 +76,7 @@ Run `/hub:spawn` to launch agents. For each agent 1..N:
### 3. Monitor
Run `/hub:status` to check progress:
Run `/hub:hub-status` to check progress:
- `dag_analyzer.py --status --session {id}` shows branch state
- Board `progress/` channel has agent updates

View file

@ -30,9 +30,9 @@ Round 2: A2, A4 → Eval → A2 wins
**When to use**: Complex optimization where iterative refinement helps. Each round builds on the previous winner.
**Implementation**:
1. Run `/hub:init` + `/hub:spawn` for round 1
1. Run `/hub:hub-init` + `/hub:spawn` for round 1
2. Eval, merge winner into a new base branch
3. Run `/hub:init` again with the merged branch as base
3. Run `/hub:hub-init` again with the merged branch as base
4. Repeat until convergence or budget exhausted
### Ensemble
@ -48,7 +48,7 @@ Agent 3: solves database layer
**When to use**: Large tasks that decompose into independent subtasks. Each agent gets a different piece.
**Implementation**:
1. In `/hub:init`, give each agent a DIFFERENT task (subtask of the whole)
1. In `/hub:hub-init`, give each agent a DIFFERENT task (subtask of the whole)
2. Spawn with unique dispatch posts per agent
3. Instead of `/hub:eval` ranking, manually cherry-pick from each
4. Or merge sequentially: merge agent-1, then merge agent-2 on top

View file

@ -1,19 +1,19 @@
---
name: "init"
description: "Create a new AgentHub collaboration session with task, agent count, and evaluation criteria. Use when the user runs /hub:init or asks to start a multi-agent competition on a task."
command: /hub:init
name: "hub-init"
description: "Create a new AgentHub collaboration session with task, agent count, and evaluation criteria. Use when the user runs /hub:hub-init or asks to start a multi-agent competition on a task."
command: /hub:hub-init
---
# /hub:init — Create New Session
# /hub:hub-init — Create New Session
Initialize an AgentHub collaboration session. Creates the `.agenthub/` directory structure, generates a session ID, and configures evaluation criteria.
## Usage
```
/hub:init # Interactive mode
/hub:init --task "Optimize API" --agents 3 --eval "pytest bench.py" --metric p50_ms --direction lower
/hub:init --task "Refactor auth" --agents 2 # No eval (LLM judge mode)
/hub:hub-init # Interactive mode
/hub:hub-init --task "Optimize API" --agents 3 --eval "pytest bench.py" --metric p50_ms --direction lower
/hub:hub-init --task "Refactor auth" --agents 2 # No eval (LLM judge mode)
```
## What It Does

View file

@ -1,18 +1,18 @@
---
name: "status"
description: "Show DAG state, agent progress, and branch status for an AgentHub session. Use when the user runs /hub:status or asks how the AgentHub agents are doing."
command: /hub:status
name: "hub-status"
description: "Show DAG state, agent progress, and branch status for an AgentHub session. Use when the user runs /hub:hub-status or asks how the AgentHub agents are doing."
command: /hub:hub-status
---
# /hub:status — Session Status
# /hub:hub-status — Session Status
Display the current state of an AgentHub session: agent branches, commit counts, frontier status, and board updates.
## Usage
```
/hub:status # Status for latest session
/hub:status 20260317-143022 # Status for specific session
/hub:hub-status # Status for latest session
/hub:hub-status 20260317-143022 # Status for specific session
```
## What It Does

View file

@ -41,7 +41,7 @@ Execute these steps sequentially:
### Step 1: Initialize
Run `/hub:init` with the provided arguments:
Run `/hub:hub-init` with the provided arguments:
```bash
python {skill_path}/scripts/hub_init.py \

View file

@ -79,5 +79,5 @@ python {skill_path}/scripts/session_manager.py --update {session-id} --state run
Tell the user:
- {N} agents launched in parallel
- Each working in an isolated worktree
- Monitor with `/hub:status`
- Monitor with `/hub:hub-status`
- Evaluate when done with `/hub:eval`

View file

@ -9,8 +9,8 @@ Use the `/ar:` namespace for all commands:
- `/ar:setup` — Set up a new experiment interactively
- `/ar:run` — Run a single experiment iteration
- `/ar:loop` — Start an autonomous loop with user-selected interval
- `/ar:status` — Show dashboard and results
- `/ar:resume` — Resume a paused experiment
- `/ar:ar-status` — Show dashboard and results
- `/ar:ar-resume` — Resume a paused experiment
## How it works
@ -45,13 +45,13 @@ Prompts for interval (10min, 1h, daily, weekly, monthly), then creates a recurri
### Checking progress
```
/ar:status
/ar:ar-status
```
Shows the dashboard across all experiments with metrics and trends.
### Resuming after context limit or break
```
/ar:resume engineering/api-speed
/ar:ar-resume engineering/api-speed
```
Reads results history, checks out the branch, and continues where you left off.

View file

@ -13,8 +13,8 @@
"setup": "/ar:setup",
"run": "/ar:run",
"loop": "/ar:loop",
"status": "/ar:status",
"resume": "/ar:resume"
"status": "/ar:ar-status",
"resume": "/ar:ar-resume"
},
"agents": [
"experiment-runner"

View file

@ -1,18 +1,18 @@
---
name: "resume"
description: "Resume a paused experiment. Checkout the experiment branch, read results history, continue iterating. Use when the user runs /ar:resume or asks to pick up a previously started autoresearch experiment."
command: /ar:resume
name: "ar-resume"
description: "Resume a paused experiment. Checkout the experiment branch, read results history, continue iterating. Use when the user runs /ar:ar-resume or asks to pick up a previously started autoresearch experiment."
command: /ar:ar-resume
---
# /ar:resume — Resume Experiment
# /ar:ar-resume — Resume Experiment
Resume a paused or context-limited experiment. Reads all history and continues where you left off.
## Usage
```
/ar:resume # List experiments, let user pick
/ar:resume engineering/api-speed # Resume specific experiment
/ar:ar-resume # List experiments, let user pick
/ar:ar-resume engineering/api-speed # Resume specific experiment
```
## What It Does

View file

@ -1,21 +1,21 @@
---
name: "status"
description: "Show experiment dashboard with results, active loops, and progress. Use when the user runs /ar:status or asks how an autoresearch experiment is going."
command: /ar:status
name: "ar-status"
description: "Show experiment dashboard with results, active loops, and progress. Use when the user runs /ar:ar-status or asks how an autoresearch experiment is going."
command: /ar:ar-status
---
# /ar:status — Experiment Dashboard
# /ar:ar-status — Experiment Dashboard
Show experiment results, active loops, and progress across all experiments.
## Usage
```
/ar:status # Full dashboard
/ar:status engineering/api-speed # Single experiment detail
/ar:status --domain engineering # All experiments in a domain
/ar:status --format markdown # Export as markdown
/ar:status --format csv --output results.csv # Export as CSV
/ar:ar-status # Full dashboard
/ar:ar-status engineering/api-speed # Single experiment detail
/ar:ar-status --domain engineering # All experiments in a domain
/ar:ar-status --format markdown # Export as markdown
/ar:ar-status --format csv --output results.csv # Export as CSV
```
## What It Does

View file

@ -26,8 +26,8 @@ Not one guess — fifty measured attempts, compounding.
| `/ar:setup` | Set up a new experiment interactively |
| `/ar:run` | Run a single experiment iteration |
| `/ar:loop` | Start autonomous loop with configurable interval (10m, 1h, daily, weekly, monthly) |
| `/ar:status` | Show dashboard and results |
| `/ar:resume` | Resume a paused experiment |
| `/ar:ar-status` | Show dashboard and results |
| `/ar:ar-resume` | Resume a paused experiment |
---

View file

@ -99,7 +99,7 @@ Loop started for {domain}/{name}
Cron ID: {id}
Auto-expires: 3 days (CronCreate limit)
To check progress: /ar:status
To check progress: /ar:ar-status
To stop the loop: /ar:loop stop {domain}/{name}
Note: Recurring jobs auto-expire after 3 days.

View file

@ -22,6 +22,15 @@ from typing import Any, Dict, List, Tuple, Optional, Set
from urllib.parse import urlparse
from dataclasses import dataclass, field
# Windows consoles often default to a legacy codepage (e.g. cp1252) that cannot
# encode the Unicode glyphs this script prints (issue #969). Re-encode
# stdout/stderr as UTF-8 with replacement so output never crashes at print time.
if hasattr(sys.stdout, "reconfigure"):
sys.stdout.reconfigure(encoding="utf-8", errors="replace")
if hasattr(sys.stderr, "reconfigure"):
sys.stderr.reconfigure(encoding="utf-8", errors="replace")
@dataclass
class LintIssue:

View file

@ -24,6 +24,15 @@ from dataclasses import dataclass, field
from enum import Enum
import math
# Windows consoles often default to a legacy codepage (e.g. cp1252) that cannot
# encode the Unicode glyphs this script prints (issue #969). Re-encode
# stdout/stderr as UTF-8 with replacement so output never crashes at print time.
if hasattr(sys.stdout, "reconfigure"):
sys.stdout.reconfigure(encoding="utf-8", errors="replace")
if hasattr(sys.stderr, "reconfigure"):
sys.stderr.reconfigure(encoding="utf-8", errors="replace")
class ScoreCategory(Enum):
"""Scoring categories."""

View file

@ -22,6 +22,15 @@ from typing import Any, Dict, List, Set, Optional, Tuple, Union
from dataclasses import dataclass, field
from enum import Enum
# Windows consoles often default to a legacy codepage (e.g. cp1252) that cannot
# encode the Unicode glyphs this script prints (issue #969). Re-encode
# stdout/stderr as UTF-8 with replacement so output never crashes at print time.
if hasattr(sys.stdout, "reconfigure"):
sys.stdout.reconfigure(encoding="utf-8", errors="replace")
if hasattr(sys.stderr, "reconfigure"):
sys.stderr.reconfigure(encoding="utf-8", errors="replace")
class ChangeType(Enum):
"""Types of API changes."""

View file

@ -7,6 +7,15 @@ import json
import math
from collections import Counter
# Windows consoles often default to a legacy codepage (e.g. cp1252) that cannot
# encode the Unicode glyphs this script prints (issue #969). Re-encode
# stdout/stderr as UTF-8 with replacement so output never crashes at print time.
if hasattr(sys.stdout, "reconfigure"):
sys.stdout.reconfigure(encoding="utf-8", errors="replace")
if hasattr(sys.stderr, "reconfigure"):
sys.stderr.reconfigure(encoding="utf-8", errors="replace")
# ── Sample content for zero-config demo ──────────────────────────────────────
SAMPLE_HUMAN = """
We tried to fix our churn problem the wrong way for about a year.

View file

@ -7,6 +7,15 @@ import json
import math
from collections import Counter
# Windows consoles often default to a legacy codepage (e.g. cp1252) that cannot
# encode the Unicode glyphs this script prints (issue #969). Re-encode
# stdout/stderr as UTF-8 with replacement so output never crashes at print time.
if hasattr(sys.stdout, "reconfigure"):
sys.stdout.reconfigure(encoding="utf-8", errors="replace")
if hasattr(sys.stderr, "reconfigure"):
sys.stderr.reconfigure(encoding="utf-8", errors="replace")
# ── Sample content for zero-config demo run ──────────────────────────────────
SAMPLE_CONTENT = """
Title: How to Reduce Churn in SaaS: 7 Proven Tactics That Actually Work

View file

@ -198,8 +198,8 @@ nav:
- "Autoresearch /ar:setup": skills/engineering/autoresearch-agent-setup.md
- "Autoresearch /ar:run": skills/engineering/autoresearch-agent-run.md
- "Autoresearch /ar:loop": skills/engineering/autoresearch-agent-loop.md
- "Autoresearch /ar:status": skills/engineering/autoresearch-agent-status.md
- "Autoresearch /ar:resume": skills/engineering/autoresearch-agent-resume.md
- "Autoresearch /ar:ar-status": skills/engineering/autoresearch-agent-status.md
- "Autoresearch /ar:ar-resume": skills/engineering/autoresearch-agent-resume.md
- "Agent Designer": skills/engineering/agent-designer.md
- "Agent Workflow Designer": skills/engineering/agent-workflow-designer.md
- "API Design Reviewer": skills/engineering/api-design-reviewer.md
@ -257,9 +257,9 @@ nav:
- "Workflow Builder": skills/engineering/workflow-builder.md
- AgentHub:
- "AgentHub": skills/engineering/agenthub.md
- "/hub:init": skills/engineering/agenthub-init.md
- "/hub:hub-init": skills/engineering/agenthub-init.md
- "/hub:spawn": skills/engineering/agenthub-spawn.md
- "/hub:status": skills/engineering/agenthub-status.md
- "/hub:hub-status": skills/engineering/agenthub-status.md
- "/hub:eval": skills/engineering/agenthub-eval.md
- "/hub:merge": skills/engineering/agenthub-merge.md
- "/hub:board": skills/engineering/agenthub-board.md

View file

@ -0,0 +1,87 @@
#!/usr/bin/env python3
"""Guard against plugin skill names that shadow Claude Code built-in commands.
Issue #885: a plugin skill whose frontmatter `name:` equals a built-in slash
command word (e.g. `status`, `review`) shadows the built-in for every user who
installs the plugin Claude Code's slash resolver matches the bare leaf name.
The fix convention is a namespaced leaf name (`memory-status`, `hub-status`,
`pw-review`, ...). This gate fails CI when a new bare reserved name appears.
Scans every SKILL.md outside mirror trees / docs / eval output and checks the
frontmatter `name:` against the reserved-word list below (Claude Code built-in
commands as of CC 2.1.x extend the set when new built-ins land).
Exit codes: 0 = clean, 1 = at least one shadowing name found.
"""
import argparse
import os
import re
import sys
REPO = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Claude Code built-in slash commands a plugin skill name must never equal.
RESERVED = {
"add-dir", "agents", "bug", "clear", "compact", "commit", "config",
"context", "cost", "doctor", "export", "help", "hooks", "init", "login",
"logout", "mcp", "memory", "model", "permissions", "plugin", "pr",
"resume", "review", "rewind", "settings", "status", "terminal", "todos",
"usage", "vim",
}
SKIP_DIRS = {".git", ".gemini", ".codex", ".vibe", ".hermes", "docs",
"eval-workspace", "node_modules"}
NAME_RE = re.compile(r'^name:\s*["\']?([A-Za-z0-9_-]+)["\']?\s*$', re.M)
def find_skill_files():
out = []
for root, dirs, files in os.walk(REPO):
rel = os.path.relpath(root, REPO)
top = rel.split(os.sep)[0]
if top in SKIP_DIRS:
dirs[:] = []
continue
if "SKILL.md" in files:
out.append(os.path.join(root, "SKILL.md"))
return sorted(out)
def check(path):
try:
with open(path, encoding="utf-8", errors="replace") as f:
head = f.read(2048)
except OSError as e:
return f"unreadable: {e}"
m = NAME_RE.search(head)
if m and m.group(1).lower() in RESERVED:
return (f"skill name {m.group(1)!r} shadows the built-in "
f"/{m.group(1).lower()} command (issue #885) — use a "
f"namespaced leaf name like '<plugin>-{m.group(1).lower()}'")
return None
def main():
ap = argparse.ArgumentParser(description=__doc__,
formatter_class=argparse.RawDescriptionHelpFormatter)
ap.add_argument("--all", action="store_true",
help="Check every SKILL.md in the repo (default behavior)")
ap.parse_args()
failed = 0
for f in find_skill_files():
msg = check(f)
rel = os.path.relpath(f, REPO)
if msg:
failed += 1
print(f"FAIL {rel}\n - {msg}")
if failed:
print(f"\n{failed} skill(s) shadow built-in commands", file=sys.stderr)
return 1
print("OK: no plugin skill name shadows a Claude Code built-in command")
return 0
if __name__ == "__main__":
sys.exit(main())