Agent SkillsAvivK5498/The-Claude-Protocol › subagents-discipline

subagents-discipline

GitHub

强制在实现任务开始时执行验证优先开发。核心原则是测试功能而非仅组件。包含三条规则:编码前查看实际数据、同时测试组件与功能集成、充分利用工具资源。要求提供DEMO证据,明确何时可完成及需人工检查的部分。

skills/subagents-discipline/SKILL.md AvivK5498/The-Claude-Protocol

触发场景

开始任何代码实现任务 涉及外部数据交互的开发工作 需要提交代码审查前的验证阶段

安装

npx skills add AvivK5498/The-Claude-Protocol --skill subagents-discipline -g -y
更多选项

不安装直接使用

npx skills use AvivK5498/The-Claude-Protocol@subagents-discipline

指定 Agent (Claude Code)

npx skills add AvivK5498/The-Claude-Protocol --skill subagents-discipline -a claude-code -g -y

安装 repo 全部 skill

npx skills add AvivK5498/The-Claude-Protocol --all -g -y

预览 repo 内 skill

npx skills add AvivK5498/The-Claude-Protocol --list

SKILL.md

Frontmatter
{
    "name": "subagents-discipline",
    "description": "Invoke at the start of any implementation task to enforce verification-first development"
}

Implementation Discipline

Core principle: Test the FEATURE, not just the component you built.


Three Rules

Rule 1: Look Before You Code

Before writing code that touches external data (API, database, file, config):

  1. Fetch/read the ACTUAL data - run the command, see the output
  2. Note exact field names, types, formats - not what docs say, what you SEE
  3. Code against what you observed - not what you assumed

This catches: field name mismatches, wrong data shapes, missing fields, format differences.

WITHOUT looking first:
  Assumed: column is "reference_images"
  Reality: column is "reference_image_url"
  Result:  Query fails

WITH looking first:
  Ran: SELECT column_name FROM information_schema.columns WHERE table_name = 'assets';
  Saw: reference_image_url
  Coded against: reference_image_url
  Result: Works

Rule 2: Test Both Levels

Component test catches: logic bugs, edge cases, type errors Feature test catches: integration bugs, auth issues, data flow problems

Both are required. Component test alone is NOT sufficient.

You built Component test Feature test
API endpoint curl returns 200 UI calls API, displays result
Database change Migration runs App reads/writes correctly
Frontend component Renders, no errors User can see and interact
Full-stack feature Each piece works alone End-to-end flow works

The pattern:

  1. Build the thing
  2. Component test - verify your piece works in isolation
  3. Feature test - verify the integrated feature works end-to-end
  4. Only then claim done

Rule 3: Use Your Tools

Before claiming you can't fully test:

  1. Check what MCP servers you have access to - list available tools
  2. If any tool can help verify the feature works, use it
  3. Be resourceful - browser automation, database inspection, API testing tools

"I couldn't test the feature" is only valid after exhausting available options.


DEMO Block (Required)

Every completion must include evidence. Code reviewer will verify this.

DEMO:
  COMPONENT:
    Command: [what you ran to test the component]
    Result: [what you observed]

  FEATURE:
    Steps: [how you tested the integrated feature]
    Result: [what you observed - screenshot, output, etc.]

When Full Feature Test Isn't Possible

If you genuinely cannot test end-to-end (long-running job, external service, no browser tools):

DEMO:
  COMPONENT:
    Command: curl localhost:3008/api/endpoint
    Result: 200, returns expected data

  FEATURE: PARTIAL
    Verified: [what you could test]
    Needs human check: [what still needs verification]
    Why: [specific reason - no browser MCP, takes 10+ minutes, requires external service]

Not acceptable reasons for PARTIAL:

  • "Server wasn't running" → start it
  • "Didn't have test data" → create it
  • "Would take too long" → if < 2 minutes, do it

Acceptable reasons:

  • No browser/UI automation tools available
  • External API with rate limits or costs
  • Job takes > 5 minutes to complete
  • Requires production data that can't be mocked

For Epic Children

If your BEAD_ID contains a dot (e.g., BD-001.2), you're implementing part of a larger feature:

  1. Check for design doc: bd show {EPIC_ID} --json | jq -r '.[0].design'
  2. Read it if it exists - this is your contract
  3. Match it exactly - same field names, same types, same shapes

Design docs ensure all pieces fit together. If you deviate, integration fails.


Completion Checklist

Before marking done:

  • Looked at actual data/interfaces before coding (not assumed)
  • Component test passes (your piece works in isolation)
  • Feature test passes OR documented as PARTIAL with valid reason
  • DEMO block included with evidence
  • Used available tools to test (checked MCP servers, used what helps)

Red Flags - Stop and Verify

When you catch yourself thinking:

  • "This should work..." → run it and see
  • "I assume the field is..." → look at the actual data
  • "I'll test it later..." → test it now
  • "It's too simple to break..." → verify anyway

When you're about to say:

  • "Done!" / "Fixed!" / "Should work now!" → show the DEMO first

The Bottom Line

Component test passing ≠ feature works
Curl returning 200 ≠ UI displays correctly
TypeScript compiles ≠ user can use it

Test the feature like a user would use it. Then show evidence. Then claim done.

版本历史

  • af754ef 当前 2026-07-05 10:45

同 Skill 集合

.claude/skills/create-beads-orchestration/SKILL.md
skills/create-beads-orchestration/SKILL.md
templates/skills/react-best-practices/SKILL.md
templates/skills/subagents-discipline/SKILL.md

元信息

文件数
0
版本
af754ef
Hash
8d97dd2a
收录时间
2026-07-05 10:45

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-19 14:00
浙ICP备14020137号-1 $访客地图$