Initial commit
This commit is contained in:
56
skills/code-comparison/SKILL.md
Normal file
56
skills/code-comparison/SKILL.md
Normal file
@@ -0,0 +1,56 @@
|
||||
# Code Comparison
|
||||
|
||||
Compare code implementations for equivalence, similarity, or differences with accurate classification.
|
||||
|
||||
## Comparison Dimensions
|
||||
|
||||
| Dimension | Question |
|
||||
|-----------|----------|
|
||||
| **Behavioral** | Same outputs for same inputs? Same side effects? |
|
||||
| **Semantic** | Same intent/purpose? Same business logic? |
|
||||
| **Syntactic** | Similar names, structure, formatting? |
|
||||
| **Algorithmic** | Same approach? Same complexity (Big O)? |
|
||||
| **Style** | Functional vs imperative? Recursive vs iterative? |
|
||||
|
||||
## Common Scenarios
|
||||
|
||||
| Scenario | Focus |
|
||||
|----------|-------|
|
||||
| Refactoring | Behavioral equivalence (must match) |
|
||||
| Bug fix | Specific case differs, normal matches |
|
||||
| API compat | Signature, returns, errors, side effects |
|
||||
| Plagiarism | Structure, naming, logic patterns |
|
||||
|
||||
## Output Format
|
||||
|
||||
Start with **[YES]** or **[NO]** immediately.
|
||||
|
||||
Then provide justification with specific examples from both items.
|
||||
|
||||
## Analysis Checklist
|
||||
|
||||
- [ ] Inputs (same params, types?)
|
||||
- [ ] Outputs (same returns?)
|
||||
- [ ] Side effects (same state changes?)
|
||||
- [ ] Error handling (same exceptions?)
|
||||
- [ ] Edge cases (null, empty, boundary?)
|
||||
- [ ] Performance (same complexity?)
|
||||
|
||||
## Example
|
||||
|
||||
```
|
||||
[YES] Behaviorally equivalent
|
||||
|
||||
Both functions:
|
||||
1. Return same results for all inputs
|
||||
2. Handle null by returning empty array
|
||||
3. Use same filtering logic
|
||||
|
||||
The refactoring improves readability (modern array methods) without changing behavior.
|
||||
```
|
||||
|
||||
## Pitfalls
|
||||
|
||||
- Don't stop at surface differences (naming != different behavior)
|
||||
- Check edge cases (factorial(-1) may differ)
|
||||
- Consider context (Promise vs callback may be equivalent in modern Node)
|
||||
Reference in New Issue
Block a user