Loading...
Loading...
Critical review of Intent design quality. Checks for over-engineering, YAGNI violations, premature abstraction, and simplification opportunities. Uses interactive discussion to refine design decisions.
npx skill4agent add arcblock/idd intent-critique| Dimension | Signal | Question |
|---|---|---|
| Over-engineering | Complex configuration systems, plugin architectures, multi-layer abstractions | "Is this complexity driven by current requirements?" |
| YAGNI | "May need in the future", "Reserved extension points", "Supports multiple..." | "Can we remove this and still have a working MVP?" |
| Premature Abstraction | Interfaces with only one implementation, utility functions used only once | "Is this abstraction really needed right now?" |
| Boundary Issues | Large amount of data transfer between modules, circular dependencies, ambiguous responsibilities | "Is this boundary naturally defined here?" |
| Hidden Complexity | Seemingly simple descriptions with difficult implementations | "What is the implementation complexity behind this statement?" |
/intent-critique [path]
↓
┌───────────────────┐
│ Read Intent file │
│ Understand design intent │
└─────────┬─────────┘
↓
┌───────────────────┐
│ Analyze dimension by dimension │
│ Identify suspicious designs │
└─────────┬─────────┘
↓
┌───────────────────────────────────────┐
│ For each finding, discuss with user: │
│ │
│ Present issue + simplification suggestion │
│ AskUserQuestion: │
│ - Accept simplification │
│ - Keep original design (explain reason) │
│ - Skip this item │
└─────────┬─────────────────────────────┘
↓
┌───────────────────┐
│ Summarize critique │
│ Optional: Update Intent │
└───────────────────┘# Review specified Intent
/intent-critique src/core/intent/INTENT.md
# Review current directory
/intent-critique
# Analyze only without modification
/intent-critique --dry-runCheck for:
- More than 3 configurable parts
- Plugin/extension mechanisms
- More than 2 layers of abstraction
- Descriptions like "supports multiple X"
- Complex state machinesCheck for:
- "May need in the future..."
- "Reserved for..."
- "Convenient for future..."
- Features only used in "advanced scenarios"
- Abstractions without specific use casesCheck for:
- Interfaces/protocols with only one implementation
- Public functions used only once
- Base classes with only one subclass
- Unnecessary factory/strategy patternsCheck for:
- More than 5 parameters passed between modules
- A depends on B, and B also depends on A
- A single change requires modifying multiple modules
- Ambiguous or overlapping responsibility descriptionsFinding 1/N: Over-engineering
Section: ## Plugin System
Issue: Defined a complete plugin loading, lifecycle, and sandbox mechanism, but currently only has 2 built-in features.
Simplification Suggestion: Remove the plugin system and directly hardcode these 2 features. Add it back when needed in the future.
Risk: If third-party plugins are needed soon, the design will need to be reworked.
---
AskUserQuestion:
- question: "Accept this simplification?"
- options:
- "Accept simplification" - Remove plugin system design
- "Keep original design" - Please specify the scenario
- "Skip" - Make no decision for now# Intent Critique Report
## File: src/core/intent/INTENT.md
## Statistics
- Issues found: 5
- Simplifications accepted: 3
- Original designs kept: 1
- Skipped items: 1
## Accepted Simplifications
### 1. Remove Plugin System
- Original design: Complete plugin architecture
- Simplified to: Hardcode 2 features
- Affected sections: ## Plugin System, ## Architecture
### 2. Merge Configuration Layers
...
## Kept Designs
### 1. Multi-data Source Support
- Reason: User clearly stated it's needed in v1.1
- Suggestion: Mark the specific timeline in the Intent
## Skipped Items
...
## Next Steps
- [ ] Update Intent file (if auto-update is selected)
- [ ] Run /intent-validate to check formatting
- [ ] Run /intent-review to re-approve affected sectionsdraftintent-interview → intent-validate → intent-critique → intent-review
↑
Can be called independently
Anytime you want to reflect on the design