diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index c087696a..78ad3af6 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -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" diff --git a/.codex/skills-index.json b/.codex/skills-index.json index 7b6f5536..6688b224 100644 --- a/.codex/skills-index.json +++ b/.codex/skills-index.json @@ -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", diff --git a/.codex/skills/ar-resume b/.codex/skills/ar-resume new file mode 120000 index 00000000..5ca61fb2 --- /dev/null +++ b/.codex/skills/ar-resume @@ -0,0 +1 @@ +../../engineering/autoresearch-agent/skills/ar-resume \ No newline at end of file diff --git a/.codex/skills/ar-status b/.codex/skills/ar-status new file mode 120000 index 00000000..51dab228 --- /dev/null +++ b/.codex/skills/ar-status @@ -0,0 +1 @@ +../../engineering/autoresearch-agent/skills/ar-status \ No newline at end of file diff --git a/.codex/skills/hub-init b/.codex/skills/hub-init new file mode 120000 index 00000000..1e9056ba --- /dev/null +++ b/.codex/skills/hub-init @@ -0,0 +1 @@ +../../engineering/agenthub/skills/hub-init \ No newline at end of file diff --git a/.codex/skills/hub-status b/.codex/skills/hub-status new file mode 120000 index 00000000..cbfcd0fc --- /dev/null +++ b/.codex/skills/hub-status @@ -0,0 +1 @@ +../../engineering/agenthub/skills/hub-status \ No newline at end of file diff --git a/.codex/skills/init b/.codex/skills/init deleted file mode 120000 index 00a9cc12..00000000 --- a/.codex/skills/init +++ /dev/null @@ -1 +0,0 @@ -../../engineering/agenthub/skills/init \ No newline at end of file diff --git a/.codex/skills/pw-init b/.codex/skills/pw-init new file mode 120000 index 00000000..529a4e6a --- /dev/null +++ b/.codex/skills/pw-init @@ -0,0 +1 @@ +../../engineering-team/playwright-pro/skills/pw-init \ No newline at end of file diff --git a/.codex/skills/pw-review b/.codex/skills/pw-review new file mode 120000 index 00000000..0eb09595 --- /dev/null +++ b/.codex/skills/pw-review @@ -0,0 +1 @@ +../../engineering-team/playwright-pro/skills/pw-review \ No newline at end of file diff --git a/.codex/skills/resume b/.codex/skills/resume deleted file mode 120000 index d3e3d951..00000000 --- a/.codex/skills/resume +++ /dev/null @@ -1 +0,0 @@ -../../engineering/autoresearch-agent/skills/resume \ No newline at end of file diff --git a/.codex/skills/review b/.codex/skills/review deleted file mode 120000 index 647ec915..00000000 --- a/.codex/skills/review +++ /dev/null @@ -1 +0,0 @@ -../../engineering-team/playwright-pro/skills/review \ No newline at end of file diff --git a/.codex/skills/run b/.codex/skills/run index 2aff8ba0..5a27dff7 120000 --- a/.codex/skills/run +++ b/.codex/skills/run @@ -1 +1 @@ -../../engineering/autoresearch-agent/skills/run \ No newline at end of file +../../engineering/agenthub/skills/run \ No newline at end of file diff --git a/.codex/skills/status b/.codex/skills/status deleted file mode 120000 index 9622b5ae..00000000 --- a/.codex/skills/status +++ /dev/null @@ -1 +0,0 @@ -../../engineering/autoresearch-agent/skills/status \ No newline at end of file diff --git a/.gemini/skills-index.json b/.gemini/skills-index.json index 7e9491af..2b3f8002 100644 --- a/.gemini/skills-index.json +++ b/.gemini/skills-index.json @@ -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", diff --git a/.gemini/skills/ar-resume/SKILL.md b/.gemini/skills/ar-resume/SKILL.md new file mode 120000 index 00000000..9a3c3c87 --- /dev/null +++ b/.gemini/skills/ar-resume/SKILL.md @@ -0,0 +1 @@ +../../../engineering/autoresearch-agent/skills/ar-resume/SKILL.md \ No newline at end of file diff --git a/.gemini/skills/ar-status/SKILL.md b/.gemini/skills/ar-status/SKILL.md new file mode 120000 index 00000000..271892f8 --- /dev/null +++ b/.gemini/skills/ar-status/SKILL.md @@ -0,0 +1 @@ +../../../engineering/autoresearch-agent/skills/ar-status/SKILL.md \ No newline at end of file diff --git a/.gemini/skills/hub-init/SKILL.md b/.gemini/skills/hub-init/SKILL.md new file mode 120000 index 00000000..bba7c381 --- /dev/null +++ b/.gemini/skills/hub-init/SKILL.md @@ -0,0 +1 @@ +../../../engineering/agenthub/skills/hub-init/SKILL.md \ No newline at end of file diff --git a/.gemini/skills/hub-status/SKILL.md b/.gemini/skills/hub-status/SKILL.md new file mode 120000 index 00000000..bcbf6505 --- /dev/null +++ b/.gemini/skills/hub-status/SKILL.md @@ -0,0 +1 @@ +../../../engineering/agenthub/skills/hub-status/SKILL.md \ No newline at end of file diff --git a/.gemini/skills/init/SKILL.md b/.gemini/skills/init/SKILL.md deleted file mode 120000 index 05c0f65e..00000000 --- a/.gemini/skills/init/SKILL.md +++ /dev/null @@ -1 +0,0 @@ -../../../engineering/agenthub/skills/init/SKILL.md \ No newline at end of file diff --git a/.gemini/skills/pw-init/SKILL.md b/.gemini/skills/pw-init/SKILL.md new file mode 120000 index 00000000..f5dd81f4 --- /dev/null +++ b/.gemini/skills/pw-init/SKILL.md @@ -0,0 +1 @@ +../../../engineering-team/playwright-pro/skills/pw-init/SKILL.md \ No newline at end of file diff --git a/.gemini/skills/pw-review/SKILL.md b/.gemini/skills/pw-review/SKILL.md new file mode 120000 index 00000000..aa1bd7e2 --- /dev/null +++ b/.gemini/skills/pw-review/SKILL.md @@ -0,0 +1 @@ +../../../engineering-team/playwright-pro/skills/pw-review/SKILL.md \ No newline at end of file diff --git a/.gemini/skills/resume/SKILL.md b/.gemini/skills/resume/SKILL.md deleted file mode 120000 index 73cc34f9..00000000 --- a/.gemini/skills/resume/SKILL.md +++ /dev/null @@ -1 +0,0 @@ -../../../engineering/autoresearch-agent/skills/resume/SKILL.md \ No newline at end of file diff --git a/.gemini/skills/review/SKILL.md b/.gemini/skills/review/SKILL.md deleted file mode 120000 index b5dc77e3..00000000 --- a/.gemini/skills/review/SKILL.md +++ /dev/null @@ -1 +0,0 @@ -../../../engineering-team/playwright-pro/skills/review/SKILL.md \ No newline at end of file diff --git a/.gemini/skills/skills-init/SKILL.md b/.gemini/skills/skills-init/SKILL.md deleted file mode 120000 index 1d516286..00000000 --- a/.gemini/skills/skills-init/SKILL.md +++ /dev/null @@ -1 +0,0 @@ -../../../engineering-team/playwright-pro/skills/init/SKILL.md \ No newline at end of file diff --git a/.gemini/skills/skills-review/SKILL.md b/.gemini/skills/skills-review/SKILL.md deleted file mode 120000 index b5dc77e3..00000000 --- a/.gemini/skills/skills-review/SKILL.md +++ /dev/null @@ -1 +0,0 @@ -../../../engineering-team/playwright-pro/skills/review/SKILL.md \ No newline at end of file diff --git a/.gemini/skills/skills-status/SKILL.md b/.gemini/skills/skills-status/SKILL.md deleted file mode 120000 index 2f7e0cf5..00000000 --- a/.gemini/skills/skills-status/SKILL.md +++ /dev/null @@ -1 +0,0 @@ -../../../engineering/agenthub/skills/status/SKILL.md \ No newline at end of file diff --git a/.gemini/skills/status/SKILL.md b/.gemini/skills/status/SKILL.md deleted file mode 120000 index ec526d34..00000000 --- a/.gemini/skills/status/SKILL.md +++ /dev/null @@ -1 +0,0 @@ -../../../engineering/autoresearch-agent/skills/status/SKILL.md \ No newline at end of file diff --git a/.github/workflows/ci-quality-gate.yml b/.github/workflows/ci-quality-gate.yml index 8e0b9fcd..3eaad6d2 100644 --- a/.github/workflows/ci-quality-gate.yml +++ b/.github/workflows/ci-quality-gate.yml @@ -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 diff --git a/.hermes/skills/claude-skills/engineering-team/init b/.hermes/skills/claude-skills/engineering-team/init deleted file mode 120000 index c285e57a..00000000 --- a/.hermes/skills/claude-skills/engineering-team/init +++ /dev/null @@ -1 +0,0 @@ -../../../../engineering-team/playwright-pro/skills/init \ No newline at end of file diff --git a/.hermes/skills/claude-skills/engineering-team/pw-init b/.hermes/skills/claude-skills/engineering-team/pw-init new file mode 120000 index 00000000..238ec8b6 --- /dev/null +++ b/.hermes/skills/claude-skills/engineering-team/pw-init @@ -0,0 +1 @@ +../../../../engineering-team/playwright-pro/skills/pw-init \ No newline at end of file diff --git a/.hermes/skills/claude-skills/engineering-team/pw-review b/.hermes/skills/claude-skills/engineering-team/pw-review new file mode 120000 index 00000000..c88ff4d1 --- /dev/null +++ b/.hermes/skills/claude-skills/engineering-team/pw-review @@ -0,0 +1 @@ +../../../../engineering-team/playwright-pro/skills/pw-review \ No newline at end of file diff --git a/.hermes/skills/claude-skills/engineering-team/review b/.hermes/skills/claude-skills/engineering-team/review deleted file mode 120000 index 6562335f..00000000 --- a/.hermes/skills/claude-skills/engineering-team/review +++ /dev/null @@ -1 +0,0 @@ -../../../../engineering-team/playwright-pro/skills/review \ No newline at end of file diff --git a/.hermes/skills/claude-skills/engineering/ar-resume b/.hermes/skills/claude-skills/engineering/ar-resume new file mode 120000 index 00000000..8c56cf7c --- /dev/null +++ b/.hermes/skills/claude-skills/engineering/ar-resume @@ -0,0 +1 @@ +../../../../engineering/autoresearch-agent/skills/ar-resume \ No newline at end of file diff --git a/.hermes/skills/claude-skills/engineering/ar-status b/.hermes/skills/claude-skills/engineering/ar-status new file mode 120000 index 00000000..54df8ede --- /dev/null +++ b/.hermes/skills/claude-skills/engineering/ar-status @@ -0,0 +1 @@ +../../../../engineering/autoresearch-agent/skills/ar-status \ No newline at end of file diff --git a/.hermes/skills/claude-skills/engineering/hub-init b/.hermes/skills/claude-skills/engineering/hub-init new file mode 120000 index 00000000..6eee19f2 --- /dev/null +++ b/.hermes/skills/claude-skills/engineering/hub-init @@ -0,0 +1 @@ +../../../../engineering/agenthub/skills/hub-init \ No newline at end of file diff --git a/.hermes/skills/claude-skills/engineering/hub-status b/.hermes/skills/claude-skills/engineering/hub-status new file mode 120000 index 00000000..60aa7499 --- /dev/null +++ b/.hermes/skills/claude-skills/engineering/hub-status @@ -0,0 +1 @@ +../../../../engineering/agenthub/skills/hub-status \ No newline at end of file diff --git a/.hermes/skills/claude-skills/engineering/init b/.hermes/skills/claude-skills/engineering/init deleted file mode 120000 index 92ea232d..00000000 --- a/.hermes/skills/claude-skills/engineering/init +++ /dev/null @@ -1 +0,0 @@ -../../../../engineering/agenthub/skills/init \ No newline at end of file diff --git a/.hermes/skills/claude-skills/engineering/resume b/.hermes/skills/claude-skills/engineering/resume deleted file mode 120000 index 0ced05e0..00000000 --- a/.hermes/skills/claude-skills/engineering/resume +++ /dev/null @@ -1 +0,0 @@ -../../../../engineering/autoresearch-agent/skills/resume \ No newline at end of file diff --git a/.hermes/skills/claude-skills/engineering/status b/.hermes/skills/claude-skills/engineering/status deleted file mode 120000 index a1f9ba44..00000000 --- a/.hermes/skills/claude-skills/engineering/status +++ /dev/null @@ -1 +0,0 @@ -../../../../engineering/agenthub/skills/status \ No newline at end of file diff --git a/.hermes/skills/claude-skills/skills-index.json b/.hermes/skills/claude-skills/skills-index.json index 787ba7d3..94e5c4ef 100644 --- a/.hermes/skills/claude-skills/skills-index.json +++ b/.hermes/skills/claude-skills/skills-index.json @@ -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", diff --git a/.vibe/skills/claude-skills/engineering-team/init b/.vibe/skills/claude-skills/engineering-team/init deleted file mode 120000 index c285e57a..00000000 --- a/.vibe/skills/claude-skills/engineering-team/init +++ /dev/null @@ -1 +0,0 @@ -../../../../engineering-team/playwright-pro/skills/init \ No newline at end of file diff --git a/.vibe/skills/claude-skills/engineering-team/pw-init b/.vibe/skills/claude-skills/engineering-team/pw-init new file mode 120000 index 00000000..238ec8b6 --- /dev/null +++ b/.vibe/skills/claude-skills/engineering-team/pw-init @@ -0,0 +1 @@ +../../../../engineering-team/playwright-pro/skills/pw-init \ No newline at end of file diff --git a/.vibe/skills/claude-skills/engineering-team/pw-review b/.vibe/skills/claude-skills/engineering-team/pw-review new file mode 120000 index 00000000..c88ff4d1 --- /dev/null +++ b/.vibe/skills/claude-skills/engineering-team/pw-review @@ -0,0 +1 @@ +../../../../engineering-team/playwright-pro/skills/pw-review \ No newline at end of file diff --git a/.vibe/skills/claude-skills/engineering-team/review b/.vibe/skills/claude-skills/engineering-team/review deleted file mode 120000 index 6562335f..00000000 --- a/.vibe/skills/claude-skills/engineering-team/review +++ /dev/null @@ -1 +0,0 @@ -../../../../engineering-team/playwright-pro/skills/review \ No newline at end of file diff --git a/.vibe/skills/claude-skills/engineering/ar-resume b/.vibe/skills/claude-skills/engineering/ar-resume new file mode 120000 index 00000000..8c56cf7c --- /dev/null +++ b/.vibe/skills/claude-skills/engineering/ar-resume @@ -0,0 +1 @@ +../../../../engineering/autoresearch-agent/skills/ar-resume \ No newline at end of file diff --git a/.vibe/skills/claude-skills/engineering/ar-status b/.vibe/skills/claude-skills/engineering/ar-status new file mode 120000 index 00000000..54df8ede --- /dev/null +++ b/.vibe/skills/claude-skills/engineering/ar-status @@ -0,0 +1 @@ +../../../../engineering/autoresearch-agent/skills/ar-status \ No newline at end of file diff --git a/.vibe/skills/claude-skills/engineering/hub-init b/.vibe/skills/claude-skills/engineering/hub-init new file mode 120000 index 00000000..6eee19f2 --- /dev/null +++ b/.vibe/skills/claude-skills/engineering/hub-init @@ -0,0 +1 @@ +../../../../engineering/agenthub/skills/hub-init \ No newline at end of file diff --git a/.vibe/skills/claude-skills/engineering/hub-status b/.vibe/skills/claude-skills/engineering/hub-status new file mode 120000 index 00000000..60aa7499 --- /dev/null +++ b/.vibe/skills/claude-skills/engineering/hub-status @@ -0,0 +1 @@ +../../../../engineering/agenthub/skills/hub-status \ No newline at end of file diff --git a/.vibe/skills/claude-skills/engineering/init b/.vibe/skills/claude-skills/engineering/init deleted file mode 120000 index 92ea232d..00000000 --- a/.vibe/skills/claude-skills/engineering/init +++ /dev/null @@ -1 +0,0 @@ -../../../../engineering/agenthub/skills/init \ No newline at end of file diff --git a/.vibe/skills/claude-skills/engineering/resume b/.vibe/skills/claude-skills/engineering/resume deleted file mode 120000 index 0ced05e0..00000000 --- a/.vibe/skills/claude-skills/engineering/resume +++ /dev/null @@ -1 +0,0 @@ -../../../../engineering/autoresearch-agent/skills/resume \ No newline at end of file diff --git a/.vibe/skills/claude-skills/engineering/status b/.vibe/skills/claude-skills/engineering/status deleted file mode 120000 index a1f9ba44..00000000 --- a/.vibe/skills/claude-skills/engineering/status +++ /dev/null @@ -1 +0,0 @@ -../../../../engineering/agenthub/skills/status \ No newline at end of file diff --git a/.vibe/skills/claude-skills/skills-index.json b/.vibe/skills/claude-skills/skills-index.json index 49c5bd43..1c3832c0 100644 --- a/.vibe/skills/claude-skills/skills-index.json +++ b/.vibe/skills/claude-skills/skills-index.json @@ -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", diff --git a/SKILL-AUTHORING-STANDARD.md b/SKILL-AUTHORING-STANDARD.md index fb3fcce6..a1f2efa4 100644 --- a/SKILL-AUTHORING-STANDARD.md +++ b/SKILL-AUTHORING-STANDARD.md @@ -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: diff --git a/audit/newgen-2026-06/engineering-team.md b/audit/newgen-2026-06/engineering-team.md index c5f06969..d20b0c8c 100644 --- a/audit/newgen-2026-06/engineering-team.md +++ b/audit/newgen-2026-06/engineering-team.md @@ -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 | — | diff --git a/docs/skills/engineering-team/playwright-pro-init.md b/docs/skills/engineering-team/playwright-pro-init.md index 89653e8f..2baf0427 100644 --- a/docs/skills/engineering-team/playwright-pro-init.md +++ b/docs/skills/engineering-team/playwright-pro-init.md @@ -8,7 +8,7 @@ description: "Set up Playwright in a project. Use when user says 'set up playwri
:material-code-braces: Engineering - Core :material-identifier: `init` -:material-github: Source +:material-github: Source
diff --git a/docs/skills/engineering-team/playwright-pro-migrate.md b/docs/skills/engineering-team/playwright-pro-migrate.md index 99702639..548eedfe 100644 --- a/docs/skills/engineering-team/playwright-pro-migrate.md +++ b/docs/skills/engineering-team/playwright-pro-migrate.md @@ -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 diff --git a/docs/skills/engineering-team/playwright-pro-pw.md b/docs/skills/engineering-team/playwright-pro-pw.md index 8f9640bc..4a6dd19e 100644 --- a/docs/skills/engineering-team/playwright-pro-pw.md +++ b/docs/skills/engineering-team/playwright-pro-pw.md @@ -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 ` | 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 ` | 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 → 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. diff --git a/docs/skills/engineering-team/playwright-pro-review.md b/docs/skills/engineering-team/playwright-pro-review.md index ff9d2f5f..78a092bc 100644 --- a/docs/skills/engineering-team/playwright-pro-review.md +++ b/docs/skills/engineering-team/playwright-pro-review.md @@ -8,7 +8,7 @@ description: "Review Playwright tests for quality. Use when user says 'review te
:material-code-braces: Engineering - Core :material-identifier: `review` -:material-github: Source +:material-github: Source
diff --git a/docs/skills/engineering-team/playwright-pro.md b/docs/skills/engineering-team/playwright-pro.md index aaf45fc4..1ae4f3c1 100644 --- a/docs/skills/engineering-team/playwright-pro.md +++ b/docs/skills/engineering-team/playwright-pro.md @@ -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 ` | 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 ` | 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 → 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. diff --git a/docs/skills/engineering/agenthub-init.md b/docs/skills/engineering/agenthub-init.md index 7a02052a..da78c509 100644 --- a/docs/skills/engineering/agenthub-init.md +++ b/docs/skills/engineering/agenthub-init.md @@ -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
:material-rocket-launch: Engineering - POWERFUL :material-identifier: `init` -:material-github: Source +:material-github: Source
@@ -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 diff --git a/docs/skills/engineering/agenthub-run.md b/docs/skills/engineering/agenthub-run.md index 24ae4faf..98d03bf7 100644 --- a/docs/skills/engineering/agenthub-run.md +++ b/docs/skills/engineering/agenthub-run.md @@ -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 \ diff --git a/docs/skills/engineering/agenthub-spawn.md b/docs/skills/engineering/agenthub-spawn.md index 94e95fd6..8a433ff1 100644 --- a/docs/skills/engineering/agenthub-spawn.md +++ b/docs/skills/engineering/agenthub-spawn.md @@ -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` diff --git a/docs/skills/engineering/agenthub-status.md b/docs/skills/engineering/agenthub-status.md index 228edfa6..a42d90ab 100644 --- a/docs/skills/engineering/agenthub-status.md +++ b/docs/skills/engineering/agenthub-status.md @@ -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
:material-rocket-launch: Engineering - POWERFUL :material-identifier: `status` -:material-github: Source +:material-github: Source
@@ -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 diff --git a/docs/skills/engineering/agenthub.md b/docs/skills/engineering/agenthub.md index d33050b5..dacabef3 100644 --- a/docs/skills/engineering/agenthub.md +++ b/docs/skills/engineering/agenthub.md @@ -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 diff --git a/docs/skills/engineering/autoresearch-agent-loop.md b/docs/skills/engineering/autoresearch-agent-loop.md index bd1e444d..91664fb8 100644 --- a/docs/skills/engineering/autoresearch-agent-loop.md +++ b/docs/skills/engineering/autoresearch-agent-loop.md @@ -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. diff --git a/docs/skills/engineering/autoresearch-agent-resume.md b/docs/skills/engineering/autoresearch-agent-resume.md index cd25c011..eeac374f 100644 --- a/docs/skills/engineering/autoresearch-agent-resume.md +++ b/docs/skills/engineering/autoresearch-agent-resume.md @@ -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
:material-rocket-launch: Engineering - POWERFUL :material-identifier: `resume` -:material-github: Source +:material-github: Source
@@ -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 diff --git a/docs/skills/engineering/autoresearch-agent-status.md b/docs/skills/engineering/autoresearch-agent-status.md index 6991ed44..ceb0660c 100644 --- a/docs/skills/engineering/autoresearch-agent-status.md +++ b/docs/skills/engineering/autoresearch-agent-status.md @@ -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
:material-rocket-launch: Engineering - POWERFUL :material-identifier: `status` -:material-github: Source +:material-github: Source
@@ -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 diff --git a/docs/skills/engineering/autoresearch-agent.md b/docs/skills/engineering/autoresearch-agent.md index 190eed73..27a5fb42 100644 --- a/docs/skills/engineering/autoresearch-agent.md +++ b/docs/skills/engineering/autoresearch-agent.md @@ -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 | --- diff --git a/engineering-team/playwright-pro/CLAUDE.md b/engineering-team/playwright-pro/CLAUDE.md index 2bb253b4..9fbb21ee 100644 --- a/engineering-team/playwright-pro/CLAUDE.md +++ b/engineering-team/playwright-pro/CLAUDE.md @@ -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 diff --git a/engineering-team/playwright-pro/README.md b/engineering-team/playwright-pro/README.md index 6f5dc036..3e31f2d3 100644 --- a/engineering-team/playwright-pro/README.md +++ b/engineering-team/playwright-pro/README.md @@ -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 ` | 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 ` | 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 diff --git a/engineering-team/playwright-pro/skills/migrate/SKILL.md b/engineering-team/playwright-pro/skills/migrate/SKILL.md index f704570b..7ad3dcb4 100644 --- a/engineering-team/playwright-pro/skills/migrate/SKILL.md +++ b/engineering-team/playwright-pro/skills/migrate/SKILL.md @@ -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 diff --git a/engineering-team/playwright-pro/skills/init/SKILL.md b/engineering-team/playwright-pro/skills/pw-init/SKILL.md similarity index 99% rename from engineering-team/playwright-pro/skills/init/SKILL.md rename to engineering-team/playwright-pro/skills/pw-init/SKILL.md index 606aef9b..683bd20c 100644 --- a/engineering-team/playwright-pro/skills/init/SKILL.md +++ b/engineering-team/playwright-pro/skills/pw-init/SKILL.md @@ -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", diff --git a/engineering-team/playwright-pro/skills/review/SKILL.md b/engineering-team/playwright-pro/skills/pw-review/SKILL.md similarity index 99% rename from engineering-team/playwright-pro/skills/review/SKILL.md rename to engineering-team/playwright-pro/skills/pw-review/SKILL.md index f5dab9bf..d34b22e8 100644 --- a/engineering-team/playwright-pro/skills/review/SKILL.md +++ b/engineering-team/playwright-pro/skills/pw-review/SKILL.md @@ -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", diff --git a/engineering-team/playwright-pro/skills/review/anti-patterns.md b/engineering-team/playwright-pro/skills/pw-review/anti-patterns.md similarity index 100% rename from engineering-team/playwright-pro/skills/review/anti-patterns.md rename to engineering-team/playwright-pro/skills/pw-review/anti-patterns.md diff --git a/engineering-team/playwright-pro/skills/pw/SKILL.md b/engineering-team/playwright-pro/skills/pw/SKILL.md index 7b771107..3647e875 100644 --- a/engineering-team/playwright-pro/skills/pw/SKILL.md +++ b/engineering-team/playwright-pro/skills/pw/SKILL.md @@ -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 ` | 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 ` | 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 → 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. diff --git a/engineering/agent-harness/skills/agent-harness/assets/harnesses/engineering-team.json b/engineering/agent-harness/skills/agent-harness/assets/harnesses/engineering-team.json index 2bc775cb..d4dc5a79 100644 --- a/engineering/agent-harness/skills/agent-harness/assets/harnesses/engineering-team.json +++ b/engineering/agent-harness/skills/agent-harness/assets/harnesses/engineering-team.json @@ -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": { diff --git a/engineering/agent-harness/skills/agent-harness/assets/harnesses/engineering.json b/engineering/agent-harness/skills/agent-harness/assets/harnesses/engineering.json index 930bd191..95b3995a 100644 --- a/engineering/agent-harness/skills/agent-harness/assets/harnesses/engineering.json +++ b/engineering/agent-harness/skills/agent-harness/assets/harnesses/engineering.json @@ -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, diff --git a/engineering/agenthub/CLAUDE.md b/engineering/agenthub/CLAUDE.md index 2aeed9c3..00eef771 100644 --- a/engineering/agenthub/CLAUDE.md +++ b/engineering/agenthub/CLAUDE.md @@ -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) diff --git a/engineering/agenthub/README.md b/engineering/agenthub/README.md index af2b0788..6de97b9b 100644 --- a/engineering/agenthub/README.md +++ b/engineering/agenthub/README.md @@ -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 diff --git a/engineering/agenthub/settings.json b/engineering/agenthub/settings.json index 6bf2356b..e0d4e28a 100644 --- a/engineering/agenthub/settings.json +++ b/engineering/agenthub/settings.json @@ -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", diff --git a/engineering/agenthub/skills/agenthub/SKILL.md b/engineering/agenthub/skills/agenthub/SKILL.md index b8613a99..11e49205 100644 --- a/engineering/agenthub/skills/agenthub/SKILL.md +++ b/engineering/agenthub/skills/agenthub/SKILL.md @@ -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 diff --git a/engineering/agenthub/skills/agenthub/references/coordination-strategies.md b/engineering/agenthub/skills/agenthub/references/coordination-strategies.md index c0365566..41d7f42a 100644 --- a/engineering/agenthub/skills/agenthub/references/coordination-strategies.md +++ b/engineering/agenthub/skills/agenthub/references/coordination-strategies.md @@ -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 diff --git a/engineering/agenthub/skills/init/SKILL.md b/engineering/agenthub/skills/hub-init/SKILL.md similarity index 84% rename from engineering/agenthub/skills/init/SKILL.md rename to engineering/agenthub/skills/hub-init/SKILL.md index e013e2d6..06a7b6cc 100644 --- a/engineering/agenthub/skills/init/SKILL.md +++ b/engineering/agenthub/skills/hub-init/SKILL.md @@ -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 diff --git a/engineering/agenthub/skills/status/SKILL.md b/engineering/agenthub/skills/hub-status/SKILL.md similarity index 86% rename from engineering/agenthub/skills/status/SKILL.md rename to engineering/agenthub/skills/hub-status/SKILL.md index 17f0ae7e..ab668d2d 100644 --- a/engineering/agenthub/skills/status/SKILL.md +++ b/engineering/agenthub/skills/hub-status/SKILL.md @@ -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 diff --git a/engineering/agenthub/skills/run/SKILL.md b/engineering/agenthub/skills/run/SKILL.md index 4761879e..ebafb88d 100644 --- a/engineering/agenthub/skills/run/SKILL.md +++ b/engineering/agenthub/skills/run/SKILL.md @@ -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 \ diff --git a/engineering/agenthub/skills/spawn/SKILL.md b/engineering/agenthub/skills/spawn/SKILL.md index 4eb9a5a8..6327f844 100644 --- a/engineering/agenthub/skills/spawn/SKILL.md +++ b/engineering/agenthub/skills/spawn/SKILL.md @@ -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` diff --git a/engineering/autoresearch-agent/CLAUDE.md b/engineering/autoresearch-agent/CLAUDE.md index 728d4b49..33ea3d72 100644 --- a/engineering/autoresearch-agent/CLAUDE.md +++ b/engineering/autoresearch-agent/CLAUDE.md @@ -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. diff --git a/engineering/autoresearch-agent/settings.json b/engineering/autoresearch-agent/settings.json index cb73087d..16c4ff66 100644 --- a/engineering/autoresearch-agent/settings.json +++ b/engineering/autoresearch-agent/settings.json @@ -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" diff --git a/engineering/autoresearch-agent/skills/resume/SKILL.md b/engineering/autoresearch-agent/skills/ar-resume/SKILL.md similarity index 84% rename from engineering/autoresearch-agent/skills/resume/SKILL.md rename to engineering/autoresearch-agent/skills/ar-resume/SKILL.md index 2dd81260..9d282daa 100644 --- a/engineering/autoresearch-agent/skills/resume/SKILL.md +++ b/engineering/autoresearch-agent/skills/ar-resume/SKILL.md @@ -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 diff --git a/engineering/autoresearch-agent/skills/status/SKILL.md b/engineering/autoresearch-agent/skills/ar-status/SKILL.md similarity index 72% rename from engineering/autoresearch-agent/skills/status/SKILL.md rename to engineering/autoresearch-agent/skills/ar-status/SKILL.md index 173737a8..b3fcfd45 100644 --- a/engineering/autoresearch-agent/skills/status/SKILL.md +++ b/engineering/autoresearch-agent/skills/ar-status/SKILL.md @@ -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 diff --git a/engineering/autoresearch-agent/skills/autoresearch-agent/SKILL.md b/engineering/autoresearch-agent/skills/autoresearch-agent/SKILL.md index e9efaa1a..6b3c7a17 100644 --- a/engineering/autoresearch-agent/skills/autoresearch-agent/SKILL.md +++ b/engineering/autoresearch-agent/skills/autoresearch-agent/SKILL.md @@ -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 | --- diff --git a/engineering/autoresearch-agent/skills/loop/SKILL.md b/engineering/autoresearch-agent/skills/loop/SKILL.md index adbff858..aa5d1136 100644 --- a/engineering/autoresearch-agent/skills/loop/SKILL.md +++ b/engineering/autoresearch-agent/skills/loop/SKILL.md @@ -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. diff --git a/engineering/skills/api-design-reviewer/scripts/api_linter.py b/engineering/skills/api-design-reviewer/scripts/api_linter.py index 6bd4c919..61c08272 100644 --- a/engineering/skills/api-design-reviewer/scripts/api_linter.py +++ b/engineering/skills/api-design-reviewer/scripts/api_linter.py @@ -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: diff --git a/engineering/skills/api-design-reviewer/scripts/api_scorecard.py b/engineering/skills/api-design-reviewer/scripts/api_scorecard.py index dc673363..e98e2d36 100644 --- a/engineering/skills/api-design-reviewer/scripts/api_scorecard.py +++ b/engineering/skills/api-design-reviewer/scripts/api_scorecard.py @@ -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.""" diff --git a/engineering/skills/api-design-reviewer/scripts/breaking_change_detector.py b/engineering/skills/api-design-reviewer/scripts/breaking_change_detector.py index 6f2736a9..df5e6e81 100644 --- a/engineering/skills/api-design-reviewer/scripts/breaking_change_detector.py +++ b/engineering/skills/api-design-reviewer/scripts/breaking_change_detector.py @@ -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.""" diff --git a/marketing-skill/skills/content-humanizer/scripts/humanizer_scorer.py b/marketing-skill/skills/content-humanizer/scripts/humanizer_scorer.py index ac00977f..e5b073a3 100644 --- a/marketing-skill/skills/content-humanizer/scripts/humanizer_scorer.py +++ b/marketing-skill/skills/content-humanizer/scripts/humanizer_scorer.py @@ -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. diff --git a/marketing-skill/skills/content-production/scripts/content_scorer.py b/marketing-skill/skills/content-production/scripts/content_scorer.py index 58f045ef..5c4ba2af 100644 --- a/marketing-skill/skills/content-production/scripts/content_scorer.py +++ b/marketing-skill/skills/content-production/scripts/content_scorer.py @@ -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 diff --git a/mkdocs.yml b/mkdocs.yml index af0f8f3c..03c2340a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -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 diff --git a/scripts/check_skill_names.py b/scripts/check_skill_names.py new file mode 100644 index 00000000..95023f6e --- /dev/null +++ b/scripts/check_skill_names.py @@ -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 '-{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())