add-feature
GitHub指导如何向 Syncpack 添加新功能,涵盖 CLI 命令开发、InstanceState 验证逻辑扩展及两者结合场景。包含前置知识、注册点说明、TDD 工作流及提交前检查清单。
Trigger Scenarios
Install
npx skills add JamieMason/syncpack --skill add-feature -g -y
SKILL.md
Frontmatter
{
"name": "add-feature",
"description": "Add new features to Syncpack including commands and validation logic. Use when implementing new CLI commands, adding InstanceState variants, or extending version group behaviour."
}
Add Feature
Guide for adding new functionality to Syncpack.
Quick Decision
What are you adding?
- New CLI command (lint, fix, format, etc.) → See adding-command.md
- New validation logic (InstanceState variant) → See adding-instance-state.md
- Both → Start with instance state, then add command
Prerequisites
Before adding any feature:
- Understand the 3-phase pattern: Create Context → Inspect Context → Run Command
- Know which phase your feature affects
- Check if similar code exists (use
ast-grep -p 'PATTERN' src/)
Feature Types
Commands
Commands are user-facing operations (syncpack lint, syncpack fix, etc.).
When to create a new command:
- New user-facing operation that doesn't fit existing commands
- Different output format or behaviour needed
Registration points (all three required):
src/cli.rs- Add toSubcommandenumsrc/main.rs- Add match arm for dispatchsrc/commands/*.rs- Implementpub fn run(ctx: Context) -> i32
→ Full guide: adding-command.md
Instance States
InstanceState variants describe validation results (valid, fixable, unfixable, suspect).
When to add a new state:
- New validation rule needed
- New type of error/warning to report
- New auto-fix capability
Location: src/instance_state.rs + src/visit_packages/*.rs
→ Full guide: adding-instance-state.md
Common Workflow
- Write failing test using TestBuilder
- Implement minimal code to pass
- Run
cargo clippyand fix warnings - Refactor if needed
- Update documentation
Checklist
Before submitting:
- Tests pass (
just test) - Zero clippy warnings
- Follows existing patterns
- Registered in all required places (for commands)
- Uses TDD approach
Version History
- 15.3.2 Current 2026-07-06 19:59


