AgentSkillsCN

harshjudge

具备自动日期时间校验与旅行时区切换功能的时间感知助手。适用于以下场景:(1) 用户询问当前事件、新闻、“今天”、“现在”,或任何需要精确日期与时间的时效性话题;(2) 用户提到前往不同城市或国家,并希望切换时区;(3) 用户说出“我到了北京”、“我在东京”、“人在纽约”等话语,表明其位置发生了变化;(4) 在回答关于日程安排、截止日期,或时事新闻的问题之前,代理需要提供时间背景信息。

SKILL.md
--- frontmatter
name: harshjudge
description: AI-native E2E testing orchestration for Claude Code. Use when creating, running, or managing end-to-end test scenarios with visual evidence capture. Activates for tasks involving E2E tests, browser automation testing, test scenario creation, test execution with screenshots, or checking test status.

HarshJudge E2E Testing

AI-native E2E testing with MCP tools and visual evidence capture.

Core Principles

  1. Evidence First: Screenshot before and after every action
  2. Fail Fast: Stop on error, report with context
  3. Complete Runs: Always call completeRun, even on failure
  4. Step Isolation: Each step executes in its own spawned agent for token efficiency
  5. Knowledge Accumulation: Learnings go to prd.md, not scenarios

Step-Based Execution

HarshJudge uses a step-based agent pattern for token-efficient test execution:

code
Main Agent                    Step Agents (spawned per step)
    │
    ├─ startRun(scenarioSlug)
    │      ↓
    │  Returns: runId, steps[]
    │
    ├─► Spawn Agent: Step 01 ──────────────────────► Execute actions
    │      │                                              │
    │      │ ◄─────────────────────────────────── Return: { status, evidencePaths }
    │      │
    │   completeStep(runId, "01", status)
    │      │
    ├─► Spawn Agent: Step 02 ──────────────────────► Execute actions
    │      │                                              │
    │      │ ◄─────────────────────────────────── Return: { status, evidencePaths }
    │      │
    │   completeStep(runId, "02", status)
    │      │
    │   ... (repeat for each step)
    │
    └─ completeRun(runId, finalStatus)

Benefits:

  • Each step agent has isolated context (no token accumulation)
  • Large outputs (screenshots, logs) saved to files, not returned
  • Main agent only receives concise summaries
  • Automatic token optimization without manual management

Workflows

IntentReferenceKey Tools
Initialize projectreferences/setup.mdinitProject
Create scenarioreferences/create.mdcreateScenario
Run scenarioreferences/run.mdstartRun, completeStep, completeRun
Fix failed testreferences/iterate.mdgetStatus, createScenario
Check statusreferences/status.mdgetStatus

Project Structure

code
.harshJudge/
  config.yaml              # Project configuration
  prd.md                   # Product requirements (from assets/prd.md template)
  scenarios/{slug}/
    meta.yaml              # Scenario definition + run statistics
    steps/                 # Individual step files
      01-step-slug.md      # Step 01 details
      02-step-slug.md      # Step 02 details
      ...
    runs/{runId}/          # Run history
      result.json          # Run result with per-step data
      step-01/evidence/    # Step 01 evidence
      step-02/evidence/    # Step 02 evidence
      ...
  snapshots/               # Inspection tool outputs (token-saving pattern)

Quick Reference

HarshJudge MCP Tools

ToolPurpose
initProjectInitialize project (spawns dashboard)
createScenarioCreate/update scenario with step files
toggleStarToggle/set scenario starred status
startRunStart test run, returns step list
recordEvidenceCapture evidence for a step
completeStepComplete a step, get next step ID
completeRunFinalize run with status
getStatusCheck project or scenario status
openDashboard / closeDashboardManage dashboard server

Playwright MCP Tools

ToolPurpose
browser_navigateNavigate to URL
browser_snapshotGet accessibility tree (use before click/type)
browser_clickClick element using ref
browser_typeType into input using ref
browser_take_screenshotCapture screenshot for evidence
browser_console_messagesGet console logs
browser_network_requestsGet network activity
browser_wait_forWait for text/condition

Step Agent Prompt Template

When spawning an agent for each step:

code
Execute step {stepId} of scenario {scenarioSlug}:

## Step Content
{content from steps/{stepId}-{slug}.md}

## Project Context
Base URL: {from config.yaml}
Auth: {from prd.md if needed}

## Previous Step
Status: {pass|fail|first step}

## Your Task
1. Execute the actions using Playwright MCP tools
2. Use browser_snapshot before clicking to get element refs
3. Capture before/after screenshots using browser_take_screenshot
4. Record evidence using recordEvidence with step={stepNumber}

Return ONLY a JSON object:
{
  "status": "pass" | "fail",
  "evidencePaths": ["path1.png", "path2.png"],
  "error": null | "error message"
}

DO NOT return full evidence content. DO NOT explain your work.

Error Handling

On ANY error:

  1. STOP - Do not proceed
  2. Report - Tool, params, error, resolution
  3. Check prd.md - Is this a known pattern?
  4. Do NOT retry - Unless user instructs