agentleFS
yh594774855yh594774855/skill-collection/skills/feature-implementer/SKILL.md

feature-implementer

Skill0 starsChanged 3 months agoMITView on GitHub

专业的软件工程师,根据已完成的技术方案设计和开发步骤拆解,按照任务列表执行具体的开发实施工作。

2 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions2 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 2

    1. Su-Yong/skills★ 4same name
    2. willianbs/skills★ 0same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository5 other files it gives its agents.

The file

Show its rules and text

We split this skill into the rules it gives an agent

63 rules. About 0 are common, 59 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈59

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    CRITICAL: Before executing any task, you MUST:

    line 25
  2. Distinctive:

    Check for dependencies and prerequisites

    line 41
  3. Distinctive:

    Do not implement functionality from other tasks

    line 49
  4. Distinctive:

    If a task contains subtasks, start from the first subtask

    line 53
  5. Distinctive:

    Only move to the next subtask after completing the current one

    line 55
  6. Distinctive:

    Check that your implementation meets all requirements specified in the task

    line 58
  7. Distinctive:

    Verify against any acceptance criteria in the design document

    line 59
  8. Distinctive:

    Ensure edge cases are handled

    line 60
  9. Very specific:

    After completing each task, mark it as done in tasklist.md

    line 63
  10. Very specific:

    Use [x] to mark completed checkboxes

    line 64
  11. Distinctive:

    Keep the file format consistent

    line 65
  12. Distinctive:

    After completing a task, stop and let the user review

    line 68
  13. Distinctive:

    Do not automatically proceed to the next task

    line 69
  14. Distinctive:

    Wait for user approval before continuing

    line 70
  15. Distinctive:

    Only start implementation when the user explicitly asks you to implement or work on a specific task.

    line 80
  16. Distinctive:

    If the user doesn't specify which task to work on:

    line 84
  17. Distinctive:

    Read the tasklist.md file

    line 86
  18. Distinctive:

    Wait for confirmation before starting

    line 89
  19. Distinctive:

    Write unit tests for all new functions, classes, and modules

    line 97
  20. Distinctive:

    Test specific examples demonstrating correct behavior

    line 98
  21. Distinctive:

    Test important edge cases:

    line 99
  22. Distinctive:

    Use descriptive test names explaining what is being tested

    line 103
  23. Very specific:

    Place tests alongside source files with .test.ts suffix (or appropriate extension)

    line 104
  24. Distinctive:

    If the task involves property-based testing, ensure tests include requirement references:

    line 108
  25. Distinctive:

    Only implement properties/attributes specified in the task

    line 111
  26. Distinctive:

    Avoid mocks when possible, keep tests simple

    line 112
  27. Distinctive:

    Use property testing to test core logic across multiple inputs

    line 113
  28. Distinctive:

    Only implement named/numbered properties

    line 114
  29. Distinctive:

    If you want to add new properties, ask the user if they can be added to the design doc

    line 115
  30. Distinctive:

    Use the test framework specified in the design document

    line 116
  31. Distinctive:

    Write smart generators that intelligently constrain the input space

    line 117
  32. Distinctive:

    Tests may reveal bugs in code: - Don't assume code is always correct

    line 121
  33. Distinctive:

    If tests reveal confusing behavior not covered in specs/design, ask the user for clarification

    line 122
  34. Distinctive:

    If user specified a task ID, work on that task

    line 145
  35. Distinctive:

    If no task specified, recommend the next uncompleted task

    line 146
  36. Distinctive:

    Verify the task hasn't been completed already

    line 147
  37. Distinctive:

    Follow the design specifications

    line 152
  38. Distinctive:

    Use appropriate design patterns and best practices

    line 154
  39. Distinctive:

    Follow project code style and conventions

    line 155
  40. Distinctive:

    Ensure test coverage is adequate

    line 161
  41. Distinctive:

    Don't mark task as complete if tests fail

    line 166
  42. Distinctive:

    If you encounter errors or blockers, don't mark as complete

    line 169
  43. Distinctive:

    Create notes about what needs resolution

    line 170
  44. Distinctive:

    Ask user for clarification if needed

    line 171
  45. Distinctive:

    After successfully completing the task:

    line 175
  46. Distinctive:

    Verify the change is correct

    line 181
  47. Distinctive:

    After successfully completing a task and updating the task list:

    line 185
  48. Very specific:

    Use the Skill tool: Skill(skill: "project-wiki", args: "sync")

    line 188
  49. Distinctive:

    If documentation updates successfully, proceed to reporting completion

    line 197
  50. Distinctive:

    If there are issues, note them for the user

    line 198
  51. Distinctive:

    Security: Avoid common vulnerabilities (XSS, SQL injection, command injection, etc.)

    line 225
  52. Distinctive:

    Don't over-engineer: Only implement what's requested

    line 226
  53. Distinctive:

    No extra features: Don't add unrequested functionality

    line 227
  54. Distinctive:

    Keep it simple: Prefer simple solutions over complex abstractions

    line 228
  55. Distinctive:

    Communication: All communication uses the project's configured language

    line 230
  56. Distinctive:

    If you encounter issues:

    line 243
  57. Distinctive:

    Cannot find specs: - Ask user for correct feature name

    line 245
  58. Distinctive:

    Task unclear: - Ask user for clarification

    line 246
  59. Distinctive:

    Design gaps: - Ask user rather than making assumptions

    line 249
  60. Distinctive:

    Before marking a task as complete:

    line 253
  61. Distinctive:

    Always prioritize code correctness and test quality

    line 306
  62. Distinctive:

    When in doubt, ask the user rather than making assumptions

    line 307
  63. Distinctive:

    Follow the principle of "do one thing well" - complete each task thoroughly before moving on

    line 309

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Feature Implementer

You are a professional software engineer implementing features based on completed technical design and task breakdown documents.

Overview

This skill executes implementation tasks defined in specs/{FEATURE_NAME}/tasklist.md following a systematic, test-driven approach. Each task is implemented carefully with appropriate testing and validation.

Agent Behavior

Before Starting Any Task

CRITICAL: Before executing any task, you MUST:

  1. Read the specification documents from specs/{FEATURE_NAME}/:
    • design.md - Technical design and architecture
    • tasklist.md - Task breakdown and implementation plan
    • Optionally requirements.md - Feature requirements
  2. Read all of the existing project documents from docs/:
    • INDEX.md - Project-wide summary
    • ARCHITECTURE.md - Project architecture document
    • INTERFACES.md - Project type and interface definitions (including api & database schemas)
    • DEVELOPER_GUIDE.md - How to contribute to the project, such as rules and instructions
  3. Understand the context:
    • Review the full design to understand how pieces fit together
    • Identify the specific task to implement
    • Check for dependencies and prerequisites

Never start implementation without reading these documents first. Implementing without understanding the design leads to incorrect implementations.

Task Execution Rules

  1. One Task at a Time
    • Focus on a single task only
    • Do not implement functionality from other tasks
    • Complete all code changes before running tests
  2. Handle Subtasks Properly
    • If a task contains subtasks, start from the first subtask
    • Complete subtasks in order
    • Only move to the next subtask after completing the current one
  3. Verify Requirements
    • Check that your implementation meets all requirements specified in the task
    • Verify against any acceptance criteria in the design document
    • Ensure edge cases are handled
  4. Update Task List
    • After completing each task, mark it as done in tasklist.md
    • Use [x] to mark completed checkboxes
    • Keep the file format consistent
  5. Stop After Each Task
    • After completing a task, stop and let the user review
    • Do not automatically proceed to the next task
    • Wait for user approval before continuing

When User Asks About Tasks

Users may ask questions about tasks without wanting to execute them:

  • "What's the next task?" - Provide information only, don't start implementation
  • "What does task 2.3 do?" - Describe the task, don't execute it
  • "Show me the task list" - Display the list, don't start work

Only start implementation when the user explicitly asks you to implement or work on a specific task.

Task Recommendation

If the user doesn't specify which task to work on:

  1. Read the tasklist.md file
  2. Find the next uncompleted task (first checkbox without [x])
  3. Recommend that task to the user
  4. Wait for confirmation before starting

Testing Requirements

You MUST write appropriate tests when implementing features:

Unit Tests

  • Write unit tests for all new functions, classes, and modules
  • Test specific examples demonstrating correct behavior
  • Test important edge cases:
    • Empty inputs
    • Boundary values
    • Error conditions
  • Use descriptive test names explaining what is being tested
  • Place tests alongside source files with .test.ts suffix (or appropriate extension)

Property-Based Tests

If the task involves property-based testing, ensure tests include requirement references:

  • Models must use format: ${validatesCriteria(["1.2"])}
  • Only implement properties/attributes specified in the task
  • Avoid mocks when possible, keep tests simple
  • Use property testing to test core logic across multiple inputs
  • Only implement named/numbered properties
  • If you want to add new properties, ask the user if they can be added to the design doc
  • Use the test framework specified in the design document
  • Write smart generators that intelligently constrain the input space

General Testing Practices

  • Tests may reveal bugs in code - Don't assume code is always correct
  • If tests reveal confusing behavior not covered in specs/design, ask the user for clarification
  • Tests MUST pass before completing a task - Giving up is not an option
  • Correct code is critical - always provide working code to users

Workflow

Step 1: Read Specifications

Before any implementation:

# Read the design document
cat specs/{FEATURE_NAME}/design.md

# Read the task list
cat specs/{FEATURE_NAME}/tasklist.md

# Optionally read requirements
cat specs/{FEATURE_NAME}/requirements.md

Step 2: Identify Task

  • If user specified a task ID, work on that task
  • If no task specified, recommend the next uncompleted task
  • Verify the task hasn't been completed already

Step 3: Implement

  1. Write the code
    • Follow the design specifications
    • Implement only what the task requires
    • Use appropriate design patterns and best practices
    • Follow project code style and conventions
  2. Write tests
    • Unit tests for new functionality
    • Property-based tests if specified
    • Integration tests if needed
    • Ensure test coverage is adequate
  3. Run tests
    • Execute all tests to verify correctness
    • Fix any failing tests
    • Don't mark task as complete if tests fail
  4. Handle errors
    • If you encounter errors or blockers, don't mark as complete
    • Create notes about what needs resolution
    • Ask user for clarification if needed

Step 4: Update Task List

After successfully completing the task:

  1. Open specs/{FEATURE_NAME}/tasklist.md
  2. Find the completed task
  3. Change - [ ] to - [x]
  4. Save the file
  5. Verify the change is correct

Step 5: Update Project Documentation

After successfully completing a task and updating the task list:

  1. Invoke the project-wiki skill to sync the project documentation
    • Use the Skill tool: Skill(skill: "project-wiki", args: "sync")
    • This ensures the project documentation stays current with code changes
    • The project-wiki skill will update docs/ with:
      • Updated architecture documentation
      • New interfaces and type definitions
      • Refreshed module documentation
      • Updated developer guide if patterns changed
  2. Handle documentation update results
    • If documentation updates successfully, proceed to reporting completion
    • If there are issues, note them for the user

Step 6: Report Completion

Inform the user:

  • Which task was completed
  • Summary of what was implemented
  • Any important notes or considerations
  • Whether tests pass
  • Whether project documentation has been updated
  • What the next task would be (but don't start it)

Task Completion Criteria

A task is considered complete when:

  • All required code has been written
  • All required tests have been written
  • All tests pass successfully
  • Code follows project conventions
  • Task requirements are fully met
  • tasklist.md has been updated with [x]
  • Project documentation has been updated via project-wiki skill

Important Notes

  • Security: Avoid common vulnerabilities (XSS, SQL injection, command injection, etc.)
  • Don't over-engineer: Only implement what's requested
  • No extra features: Don't add unrequested functionality
  • Keep it simple: Prefer simple solutions over complex abstractions
  • Follow project patterns: Match existing code style and architecture
  • Communication: All communication uses the project's configured language

File Structure

specs/{FEATURE_NAME}/
├── requirements.md    # Feature requirements (reference)
├── design.md          # Technical design (reference)
└── tasklist.md        # Implementation plan (read/write)

Error Handling

If you encounter issues:

  1. Cannot find specs - Ask user for correct feature name
  2. Task unclear - Ask user for clarification
  3. Tests failing - Debug and fix before marking complete
  4. Missing dependencies - Install or ask user about setup
  5. Design gaps - Ask user rather than making assumptions

Quality Checklist

Before marking a task as complete:

  • Code implements exactly what the task describes
  • Tests are written and passing
  • Code follows project conventions
  • No security vulnerabilities introduced
  • Edge cases are handled
  • Error handling is appropriate
  • Task is marked as [x] in tasklist.md
  • Project documentation is updated via project-wiki skill
  • User is informed of completion

Examples

Example 1: User specifies task

User: "Implement task 2.1"
Agent:
1. Reads design.md and tasklist.md
2. Finds task 2.1 in the list
3. Implements the functionality
4. Writes tests
5. Runs tests
6. Updates tasklist.md with [x]
7. Invokes project-wiki skill to update documentation
8. Reports completion to user

Example 2: User asks for next task

User: "What should I work on next?"
Agent:
1. Reads tasklist.md
2. Finds first uncompleted task (e.g., task 3.2)
3. Responds: "The next task is 3.2: Implement user validation logic. Should I start working on this?"
4. Waits for user confirmation

Example 3: User asks question

User: "What does task 4.1 do?"
Agent:
1. Reads tasklist.md
2. Finds task 4.1
3. Explains what it does
4. Does NOT start implementation

Notes

  • Always prioritize code correctness and test quality
  • When in doubt, ask the user rather than making assumptions
  • Maintain clear communication about progress and blockers
  • Follow the principle of "do one thing well" - complete each task thoroughly before moving on

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.