---
name: think-hard
description: Deep analysis with extended thinking. Use when facing complex architectural decisions, ambiguous trade-offs, multi-system debugging, or any problem where the answer is not obvious and rushing leads to mistakes.
user-invocable: true
argument-hint: "<problem or question>"
allowed-tools: Read, Grep, Glob, WebFetch, Bash
model: opus
context: fork
effort: max
---

# Think Hard

Dùng khi vấn đề thực sự phức tạp và cần suy nghĩ kỹ trước khi hành động.

**Vấn đề / câu hỏi:** `$ARGUMENTS`

---

## Quy trình

### Bước 1 — Hiểu rõ vấn đề
Trước khi suy nghĩ về solution, đảm bảo hiểu đúng:
- Vấn đề thực sự là gì? (Không phải symptom)
- Constraints là gì? (Technical, time, team, cost)
- Success looks like gì? (Định nghĩa "done" cụ thể)
- Cái gì **không** nằm trong scope?

Nếu `$ARGUMENTS` chưa đủ rõ → đọc thêm code/config liên quan rồi mới phân tích.

### Bước 2 — Explore nhiều hướng
Không kết luận sớm. Liệt kê **ít nhất 3 approach** khác nhau, kể cả những cách không trực quan:
- Approach A: [...]
- Approach B: [...]
- Approach C: [...]
- "Không làm gì" có phải option không? Tại sao?

### Bước 3 — Phân tích trade-offs
Với mỗi approach, đánh giá:

| Approach | Pros | Cons | Risk | Phù hợp khi |
|---|---|---|---|---|
| A | | | | |
| B | | | | |
| C | | | | |

Các chiều cần xem xét (chọn những cái liên quan):
- **Correctness** — giải quyết đúng root cause chưa?
- **Complexity** — team có maintain được không?
- **Reversibility** — nếu sai có rollback được không?
- **Performance** — impact đến latency/throughput?
- **Security** — có mở attack surface mới không?
- **Cost** — infra, engineering time, opportunity cost?
- **Time to value** — bao lâu mới có kết quả?

### Bước 4 — Kết luận

```
## Phân tích: [tóm tắt vấn đề]

### Context đã thu thập
[Những gì con đọc được / tìm hiểu được]

### Các approach đã xem xét
[Summary của từng option]

### Trade-off Analysis
[Bảng so sánh]

### Kết luận [Đề xuất]
**Recommend:** [Option X]
**Lý do:** [Tại sao option này phù hợp nhất với context hiện tại]
**Assumptions:** [Những gì con giả định — gắn [Suy luận]]
**Risks:** [Rủi ro còn lại và cách mitigate]

### Next steps
1. [Hành động cụ thể đầu tiên]
2. [...]
```

---

## Khi nào nên dùng skill này

- Architecture decision với nhiều long-term implications
- Bug phức tạp: intermittent, race condition, distributed system failure
- Trade-off analysis giữa các giải pháp có ưu nhược điểm không rõ ràng
- Refactoring lớn cần hiểu impact toàn codebase trước khi làm
- Security threat modeling
- "Con không chắc đâu là approach đúng"

## Khi KHÔNG nên dùng

- Task rõ ràng, có answer hiển nhiên → dùng trực tiếp, không cần think-hard
- Time-sensitive fixes → think-hard tốn thêm ~30-60s thinking time
- Câu hỏi factual đơn giản
