From agile-v-skills
Anti-pattern prevention for Agile V agents. Combines behavioral guidelines with traceability to prevent overcomplication, silent assumptions, scope creep, and verification failures.
How this skill is triggered — by the user, by Claude, or both
Slash command
/agile-v-skills:agile-v-behavioralThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Anti-pattern prevention for Agile V agents. Combines proven behavioral guidelines with Agile V traceability to prevent common LLM failures.
Anti-pattern prevention for Agile V agents. Combines proven behavioral guidelines with Agile V traceability to prevent common LLM failures.
Companion skill: Load agile-v-core first. This skill extends core directives with behavioral safeguards.
Tradeoff: These guidelines bias toward caution and clarity over speed. For trivial single-REQ implementations, use judgment.
Don't assume. Don't hide confusion. Surface tradeoffs. Document decisions.
DECISION_LOG.md entry with timestamp, rationale, alternatives consideredExample:
REQ-0042: "Improve error handling"
❌ Don't: Silently add try/catch blocks everywhere
✅ Do: Halt and ask:
- "Improve" how? (user-facing messages? logging? retry logic?)
- Which error scenarios? (network? validation? unexpected data?)
- What's acceptable error UX? (fail silently? show message? redirect?)
Then log decision:
DECISION: Add validation error handling with user-facing messages
RATIONALE: User reported confusing silent failures on form submission
LINKED_REQ: REQ-0042 (refined to REQ-0042a: validation error UX)
Minimum code that satisfies REQ acceptance criteria. Nothing speculative.
Ask yourself: "Would a senior engineer call this overcomplicated?" If yes, simplify.
ART-XXXX links to exactly one REQ-XXXX. If code doesn't map to REQ acceptance criteria, it's out of scope.Example:
# ❌ Over-engineered for single REQ
# REQ-0010: Calculate 10% discount on orders over $100
class DiscountStrategy(ABC):
@abstractmethod
def calculate(self, amount: float) -> float: pass
class PercentageDiscount(DiscountStrategy): ...
class TieredDiscount(DiscountStrategy): ...
class ConfigurableDiscountEngine: ...
# ✅ Simple, traceable to REQ-0010
# ART-0010: Discount calculation
# Implements: REQ-0010 (10% discount on orders >$100)
def calculate_discount(order_total):
"""REQ-0010: 10% discount for orders over $100."""
if order_total > 100:
return order_total * 0.10
return 0.0
When abstraction IS warranted:
REQ-0010 (discount), REQ-0015 (shipping calc), REQ-0020 (tax calc) all need pricing rules → abstraction justified. Document in Decision Log.Touch only what changed REQs require. Clean up only your own mess.
new or modified REQs or active CRsThe Test: Every changed line should trace directly to a REQ-XXXX or CR-XXXX. If not, revert it.
Example:
Cycle 2: CR-0005 requires changing password validation (REQ-0002)
# ❌ Scope creep
def validate_password(password):
# Changed per CR-0005
if len(password) > 128:
return False, "Max 128 chars"
# UNRELATED: Reformatted entire function, fixed typo in adjacent comment,
# "improved" variable naming in unrelated login() function
# ✅ Surgical
def validate_password(password):
# CR-0005: Add max length validation
if len(password) > 128:
return False, "Password must be 128 characters or less"
# (rest of function unchanged)
Transform REQ acceptance criteria into TC-XXXX. Success = TC passes, not "code runs."
Every REQ acceptance criterion becomes a test case:
TC-XXXX: Invalid inputs rejected with specific error messagesTC-XXXX: Reproduce bug, verify fix, ensure no regressionTC-XXXX: All existing tests pass before and afterFor Multi-Step Synthesis: State a brief plan with verification checkpoints:
REQ-0025: User profile update with avatar upload
Build Plan:
1. Create upload endpoint → verify: TC-0025-01 (accepts valid image)
2. Add image validation → verify: TC-0025-02 (rejects invalid files)
3. Save to storage → verify: TC-0025-03 (file persisted, URL returned)
4. Update user record → verify: TC-0025-04 (DB reflects new avatar)
5. Integration test → verify: TC-0025-05 (end-to-end flow)
Weak vs Strong Success Criteria:
| Weak (avoid) | Strong (use) |
|---|---|
| "Make it work" | "TC-0025-01 passes: Valid JPEG upload returns 200 + URL" |
| "Add tests" | "TC-0025-02: Rejects files >5MB with 413 error" |
| "Improve performance" | "TC-0025-06: Upload completes in <2s for 1MB file" |
Strong criteria enable independent Red Team verification and auto-fix loops without constant clarification.
Before marking artifact complete, verify:
# ART-XXXX: ... | Implements: REQ-XXXX presentAlways load alongside agile-v-core and any build agent skill. This skill adds behavioral guardrails that prevent the four most common agent failure modes: silent assumptions, overengineering, scope creep, and weak test criteria.
License: CC-BY-SA-4.0 | Author: Agile V™
Adapted from: Karpathy Skills (MIT License) | Homepage: https://github.com/Agile-V/agile_v_skills
npx claudepluginhub agile-v/agile_v_skills --plugin agile-v-skillsLoads Agile V foundational values, directives, context engineering rules, and the SCOPE-V task execution framework for traceable, validated agent workflows.
Guides AI as a disciplined coding partner for features, bugs, systems, refactoring. Human provides vision/decisions; AI executes with transparency, understanding, craftsmanship.
Enforces a gated Spec → Plan → Build → Test → Review → Ship lifecycle for multi-file features and projects, preventing AI coding agents from skipping specification and verification steps.