request-refactor-plan

Tạo một kế hoạch tái cấu trúc chi tiết với các commit nhỏ thông qua phỏng vấn người dùng, sau đó lưu dưới dạng một issue trên GitHub. Sử dụng khi người dùng muốn lập kế hoạch tái cấu trúc, tạo RFC tái cấu trúc, hoặc chia nhỏ việc tái cấu trúc thành các bước tăng dần an toàn.

npx skills add https://github.com/mattpocock/skills --skill request-refactor-plan

This skill will be invoked when the user wants to create a refactor request. You should go through the steps below. You may skip steps if you don't consider them necessary.

  1. Ask the user for a long, detailed description of the problem they want to solve and any potential ideas for solutions.

  2. Explore the repo to verify their assertions and understand the current state of the codebase.

  3. Ask whether they have considered other options, and present other options to them.

  4. Interview the user about the implementation. Be extremely detailed and thorough.

  5. Hammer out the exact scope of the implementation. Work out what you plan to change and what you plan not to change.

  6. Look in the codebase to check for test coverage of this area of the codebase. If there is insufficient test coverage, ask the user what their plans for testing are.

  7. Break the implementation into a plan of tiny commits. Remember Martin Fowler's advice to "make each refactoring step as small as possible, so that you can always see the program working."

  8. Create a GitHub issue with the refactor plan. Use the following template for the issue description:

Problem Statement

The problem that the developer is facing, from the developer's perspective.

Solution

The solution to the problem, from the developer's perspective.

Commits

A LONG, detailed implementation plan. Write the plan in plain English, breaking down the implementation into the tiniest commits possible. Each commit should leave the codebase in a working state.

Decision Document

A list of implementation decisions that were made. This can include:

  • The modules that will be built/modified
  • The interfaces of those modules that will be modified
  • Technical clarifications from the developer
  • Architectural decisions
  • Schema changes
  • API contracts
  • Specific interactions

Do NOT include specific file paths or code snippets. They may end up being outdated very quickly.

Testing Decisions

A list of testing decisions that were made. Include:

  • A description of what makes a good test (only test external behavior, not implementation details)
  • Which modules will be tested
  • Prior art for the tests (i.e. similar types of tests in the codebase)

Out of Scope

A description of the things that are out of scope for this refactor.

Further Notes (optional)

Any further notes about the refactor.

Thêm skills từ mattpocock

improve-codebase-architecture
mattpocock
Tìm cơ hội đào sâu trong một mã nguồn, dựa trên ngôn ngữ miền trong CONTEXT.md và các quyết định trong docs/adr/. Sử dụng khi người dùng muốn cải thiện kiến trúc, tìm cơ hội tái cấu trúc, hợp nhất các mô-đun kết nối chặt chẽ, hoặc làm cho mã nguồn dễ kiểm thử và dễ điều hướng bởi AI hơn.
developmentcode-reviewapi
tdd
mattpocock
Phát triển hướng theo kiểm thử với vòng lặp đỏ-xanh-tái cấu trúc. Sử dụng khi người dùng muốn xây dựng tính năng hoặc sửa lỗi bằng TDD, đề cập đến "đỏ-xanh-tái cấu trúc", muốn kiểm thử tích hợp, hoặc yêu cầu phát triển kiểm thử trước.
developmenttesting
handoff
mattpocock
Nén cuộc hội thoại hiện tại thành một tài liệu bàn giao để một tác nhân khác tiếp nhận.
communicationproject-managementdocument
prototype
mattpocock
Xây dựng một bản mẫu dùng một lần để phát triển thiết kế trước khi cam kết thực hiện. Định tuyến giữa hai nhánh — một ứng dụng terminal có thể chạy được để kiểm tra trạng thái/logic nghiệp vụ, hoặc nhiều biến thể giao diện khác nhau có thể chuyển đổi từ một tuyến đường. Sử dụng khi người dùng muốn tạo bản mẫu, kiểm tra tính hợp lý của mô hình dữ liệu hoặc máy trạng thái, phác thảo giao diện, khám phá các lựa chọn thiết kế, hoặc nói "tạo bản mẫu này", "cho tôi thử nghiệm", "thử một vài thiết kế".
developmentdesigncreative
triage
mattpocock
Phân loại vấn đề thông qua máy trạng thái được điều khiển bởi các vai trò phân loại. Sử dụng khi người dùng muốn tạo vấn đề, phân loại vấn đề, xem xét lỗi mới hoặc yêu cầu tính năng, chuẩn bị vấn đề cho tác nhân AFK, hoặc quản lý quy trình làm việc vấn đề.
developmentproject-managementcommunication
obsidian-vault
mattpocock
Tìm kiếm, tạo và quản lý ghi chú trong kho Obsidian với wikilinks và ghi chú chỉ mục. Sử dụng khi người dùng muốn tìm, tạo hoặc sắp xếp ghi chú trong Obsidian.
productivitydocument
edit-article
mattpocock
Chỉnh sửa và cải thiện bài viết bằng cách tái cấu trúc các phần, nâng cao độ rõ ràng và thắt chặt văn phong. Sử dụng khi người dùng muốn chỉnh sửa, sửa đổi hoặc cải thiện bản nháp bài viết.
documentcreative
writing-great-skills
mattpocock
Tài liệu tham khảo để viết và chỉnh sửa skill tốt — từ vựng và nguyên tắc giúp skill có tính dự đoán được.
documentdevelopment