Designs system architecture and selects technology stack based on vision analysis. Use after vision analysis for technical decisions. Triggers on: design architecture, select tech stack, choose framework.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Conducts deep technical research for Aha Loop stories. Use before implementing stories involving unfamiliar libraries or architectural decisions. Triggers on: research this, investigate, explore options, compare alternatives.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Conduct thorough technical research before implementation to ensure high-quality, informed decisions.
When running in workspace mode, all paths are relative to .aha-loop/ directory:
.aha-loop/research/ (not scripts/aha-loop/research/).aha-loop/knowledge/ (not knowledge/).aha-loop/.vendor/ (not .vendor/)The orchestrator will provide the actual paths in the prompt context.
researchTopics fieldresearchCompleted: true in prd.jsonRead the current story from prd.json and extract:
researchTopics - explicit topics to investigateAlso check:
learnings field for follow-up research needsknowledge/project/gotchas.md for related known issuesFor any third-party library research, fetch the source:
# Fetch specific library
./scripts/aha-loop/fetch-source.sh rust tokio 1.35.0
# Or fetch all project dependencies
./scripts/aha-loop/fetch-source.sh --from-deps
After fetching, the source will be at .vendor/<ecosystem>/<name>-<version>/
When researching or recommending libraries, always check for and prefer the latest stable version unless there's a specific compatibility reason not to.
Query the package registry for latest version:
# Rust (crates.io)
curl -s "https://crates.io/api/v1/crates/tokio" | jq '.crate.max_stable_version'
# Or use cargo
cargo search tokio --limit 1
# Node.js (npm)
npm view react version
# Python (PyPI)
pip index versions requests 2>/dev/null | head -1
Verify stability:
Check compatibility:
Always document version decisions:
## Version Decision: [Library Name]
**Selected Version:** X.Y.Z
**Latest Available:** X.Y.Z (as of YYYY-MM-DD)
**Reason:** [Why this version was chosen]
**Compatibility Notes:**
- Works with [other dependency] v[X.Y]
- Requires [language] v[X.Y]+
Only use older versions when:
Always document the reason in knowledge/project/decisions.md:
### ADR: Using [Library] v[Old] instead of v[New]
**Context:** [Why we're not using latest]
**Decision:** Pin to v[Old]
**Consequences:** [What we're missing, when to revisit]
Reading Order (Most Important First):
src/lib.rs, src/main.rssrc/index.ts, index.js__init__.py, main.pymod.rs files or directory structureReading Tips:
examples/ directory for usage patternstests/ for edge cases and proper usageSearch for:
Use MCP tools like context7 for up-to-date documentation.
When multiple solutions exist, create a comparison:
| Criterion | Option A | Option B | Option C |
|---|---|---|---|
| Performance | ... | ... | ... |
| API Ergonomics | ... | ... | ... |
| Maintenance Status | ... | ... | ... |
| Bundle Size | ... | ... | ... |
| Learning Curve | ... | ... | ... |
Include a recommendation with reasoning.
Save to: scripts/aha-loop/research/[story-id]-research.md
# Research Report: [Story ID] - [Story Title]
**Date:** YYYY-MM-DD
**Status:** Complete | Needs Follow-up
## Research Topics
1. [Topic from researchTopics array]
2. ...
## Findings
### Topic 1: [Name]
**Summary:** Brief answer to the research question
**Source Code Analysis:**
- Library: [name] v[version]
- Key File: `.vendor/rust/tokio-1.35.0/src/runtime/mod.rs`
- Relevant Code: Lines 123-189
- Pattern Observed: [description]
**Documentation Notes:**
- [Key insight from docs]
- [Another insight]
**Code Example:**
```[language]
// Example from source or docs
...
| Criterion | Option A | Option B | Recommendation |
|---|---|---|---|
| ... | ... | ... | ... |
Recommendation: [Option X] because [reasoning]
Based on research, the story should be implemented as follows:
The following should be added to knowledge base:
To knowledge/project/patterns.md:
To knowledge/domain/[topic]/:
---
## Updating Knowledge Base
### Project Knowledge (`knowledge/project/`)
Add patterns specific to THIS project:
- How this codebase uses a library
- Project-specific conventions discovered
- Gotchas specific to this codebase
### Domain Knowledge (`knowledge/domain/`)
Add reusable technical knowledge:
- Library usage patterns (applicable to any project)
- Comparison documents
- Best practices
**Create new topic directories as needed:**
knowledge/domain/ └── [topic-name]/ ├── README.md # Overview ├── patterns.md # Common patterns ├── gotchas.md # Known issues └── examples/ # Code examples
---
## Source Code Reading Report
When you read library source code, document your findings:
```markdown
## Source Code Analysis: [Library] v[Version]
### Module Structure
src/ ├── lib.rs # Main entry, exports public API ├── runtime/ # Async runtime implementation │ ├── mod.rs # Module exports │ └── scheduler.rs # Task scheduling └── sync/ # Synchronization primitives
### Key Types
- `Runtime` (src/runtime/mod.rs:45) - Main runtime struct
- `Handle` (src/runtime/handle.rs:23) - Runtime handle for spawning
### Key Functions
- `Runtime::new()` (L89-L120) - Creates new runtime with default config
- `spawn()` (L156-L189) - Spawns a new async task
### Usage Patterns from Tests
From `tests/runtime.rs:34`:
```rust
let rt = Runtime::new().unwrap();
rt.block_on(async {
// ...
});
spawn_blocking for CPU-heavy tasksblock_on from async context
---
## Checklist
Before marking research complete:
- [ ] All `researchTopics` investigated
- [ ] Library source code fetched and key files read (if applicable)
- [ ] Web search performed for documentation and best practices
- [ ] Alternatives compared (if multiple options exist)
- [ ] Research report saved to `scripts/aha-loop/research/`
- [ ] Knowledge base updated with reusable findings
- [ ] Implementation recommendations documented
- [ ] `researchCompleted: true` set in prd.json
아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Designs system architecture and selects technology stack based on vision analysis. Use after vision analysis for technical decisions. Triggers on: design architecture, select tech stack, choose framework.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Reviews and cleans up outdated documentation. Use periodically to maintain documentation health. Triggers on: review docs, clean up documentation, check for stale docs.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Guides God Committee members through consensus-building for collective decisions. Use for proposals, voting, and disagreement resolution. Triggers on: consensus, voting, proposal, committee decision.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Guides God Committee members through executing interventions. Use for repairs, rollbacks, and emergency actions. Triggers on: intervention, repair, rollback, emergency action.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Defines God Committee member behavior and responsibilities with oversight authority. Use when operating as a committee member. Triggers on: god committee, committee observation, council discussion.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Logs AI thoughts and decisions for human observability. Applies continuously throughout all tasks to maintain transparency.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.