From hiring-skills
Evaluate a single capstone submission against the rubric. Use when someone provides a student name, git URL, or submission path and wants it graded, scored, or assessed. Trigger phrases: grade arpit, evaluate duy, score ext/khang, assess this submission, how did [name] do. Supports --deep-dive flag for detailed technical analysis.
How this skill is triggered — by the user, by Claude, or both
Slash command
/hiring-skills:grade-submissionThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are evaluating a single capstone submission for the agent-transparent chat application challenge. Follow these steps exactly.
You are evaluating a single capstone submission for the agent-transparent chat application challenge. Follow these steps exactly.
The user can provide submissions in any of these formats:
grade "Hong Dao" https://github.com/HONG-DAO/Deep-Analyst-Research-Intelligence-Platformgrade ext/duygrade arpitgrade-all with a list of name: url pairs--deep-dive — Show detailed technical deep dive per candidate with per-dimension evidence, grilling questions, and the full scorecard. Default is OFF (summary table only).Resolve the submission path:
ext/[name] if a name is provided. Use git clone --depth=1 for speed.ext/[name] relative to the capstone repo root. Check main branch and origin/develop (some repos have code on develop only).hitesh → use ext/hitesh (contains two subdirs: deep-analyst-api/ and deep-analyst-app/)If the path does not exist and no URL was provided, ask the user for the git URL.
If the user specified a rubric name:
${CLAUDE_PLUGIN_ROOT}/rubrics/.If the user did not specify a rubric:
${CLAUDE_PLUGIN_ROOT}/rubrics/.Read these files if they exist:
README.md — setup instructions, architecture overview, known limitationsDESIGN.md / docs/design-doc.md / DESIGN_DOC.md — 1-pager design documentNote: whether a design doc exists, which Amazon sections it covers, and whether setup instructions are complete.
Inspect package.json, pyproject.toml, requirements.txt, uv.lock, server.js, main.py, or equivalent.
Critical SDK identification — read actual imports, do not infer:
claude_agent_sdk or claude-agent-sdk in imports and dependency files@anthropic-ai/sdk (raw Messages API — different from Agent SDK)@google/generative-ai, langchain, langgraph, openai (wrong SDK)ClaudeSDKClient, AgentDefinition, HookMatcher, ClaudeAgentOptionsAlso identify:
Find where agents are defined. Look for:
AgentDefinition objects with description, prompt, tools, model fields.claude/plugins/).txt, .md) in a prompts directoryallowed_tools, allowed_plugins on ClaudeAgentOptionsHookMatcher registrations for PreToolUse, PostToolUse, SubagentStart, SubagentStopNote how the orchestration is driven: by the LLM (via Task tool in the prompt) or by code (hardcoded function call sequence).
Find the file responsible for routing normalized events to state. Common names: decoder.ts, normalizer.py, eventDecoder.ts, stream-parser.ts, eventDispatcher.js, event_decoder.py.
Read it fully. For each required event type from the rubric, check:
any)?Find the logic that constructs the nested agent trace tree from flat events. Common names: tree-builder.ts, agentTreeStore.js, trace-store.ts, buildAgentTree.
Check:
parent_tool_use_id used to link sub-agent events to their parent node?Find the backend SSE endpoint.
Check:
ask_user pause (not close and reconnect)?ask_user answer submitted via a separate HTTP POST?Find and read the trace panel, chat panel, and any parallel visualization components.
Check:
ask_user UI: visually prominent? Keyboard-accessible?Find all test files (__tests__/, tests/, *.test.ts, test_*.py).
For each test file, note what it covers and whether it includes edge cases (nested contexts, parallel agents, error events).
For each dimension in the rubric (D1–D7 plus D8 stretch):
Read the auto-reject rules from the rubric. If any trigger:
Use the formula from the rubric. Round to one decimal place. Total capped at 4.0.
Convert to /100 scale for the summary table: score_100 = total × 25.
Use the decision rules table from the rubric.
2–3 sentences. Specific. Reference dimension scores and code evidence.
If --deep-dive is NOT set: skip this step entirely.
If --deep-dive IS set, produce a detailed technical analysis covering:
ClaudeAgentOptions is constructed (every field)parent_tool_use_id routing logic (the lookup maps, resolution sequence)Generate probing technical questions specific to THIS submission. Include:
If verdict is REJECT (including auto-reject): skip this step entirely.
If advancing, generate two sets:
Set 1 — HR Screen Questions (3 questions)
Set 2 — Technical Interview Questions (3 questions)
.env.example but app requires API keysIf none: "None identified."
Use the format from ${CLAUDE_PLUGIN_ROOT}/skills/grade-submission/scorecard-template.md.
Output as formatted markdown directly in the chat. Fill every section. Do not skip sections. Omit interview questions only if verdict is REJECT. Include technical deep dive only if --deep-dive was set.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub accelerate-data/hiring-skills