Skip to content
cccskills
FreePublished on GitHub

research

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.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md8.6 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Deep Research Skill

Conduct thorough technical research before implementation to ensure high-quality, informed decisions.

Workspace Mode Note

When running in workspace mode, all paths are relative to .aha-loop/ directory:

  • Research reports: .aha-loop/research/ (not scripts/aha-loop/research/)
  • Knowledge base: .aha-loop/knowledge/ (not knowledge/)
  • Vendor directory: .aha-loop/.vendor/ (not .vendor/)

The orchestrator will provide the actual paths in the prompt context.


The Job

  1. Identify research topics from the current story's researchTopics field
  2. Fetch third-party library source code if needed
  3. Search documentation and best practices
  4. Analyze and compare alternatives
  5. Generate a research report
  6. Update knowledge base with findings
  7. Mark researchCompleted: true in prd.json

Research Process

Step 1: Identify What to Research

Read the current story from prd.json and extract:

  • researchTopics - explicit topics to investigate
  • Dependencies mentioned in acceptance criteria
  • Patterns referenced in the description

Also check:

  • Previous story's learnings field for follow-up research needs
  • knowledge/project/gotchas.md for related known issues

Step 2: Fetch Library Source Code (If Needed)

For 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>/


Library Version Selection

Always Prefer Latest Stable Versions

When researching or recommending libraries, always check for and prefer the latest stable version unless there's a specific compatibility reason not to.

Version Research Process

  1. 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
    
  2. Verify stability:

    • Released at least 1-2 weeks ago (not bleeding edge)
    • Check GitHub issues for critical bugs
    • Review changelog for breaking changes
  3. Check compatibility:

    • Works with existing project dependencies
    • Compatible with project's minimum supported language version
    • No known conflicts

Version Documentation

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]+

When to Use Older Versions

Only use older versions when:

  • Latest version has critical bugs
  • Incompatible with required dependencies
  • Breaking changes require significant refactoring
  • Project explicitly constrains the version

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]

Step 3: Read Source Code Strategically

Reading Order (Most Important First):

  1. README.md - Understand design intent and quick-start examples
  2. Entry Point Files:
    • Rust: src/lib.rs, src/main.rs
    • TypeScript/JS: src/index.ts, index.js
    • Python: __init__.py, main.py
  3. Module Structure - Scan mod.rs files or directory structure
  4. Type Definitions - Find core structs, interfaces, types
  5. Target Functionality - Locate the specific feature you need
  6. Tests - Learn correct usage patterns from test files

Reading Tips:

  • Use semantic search to find relevant code sections
  • Focus on PUBLIC APIs, skip internal implementation unless needed
  • Look for examples/ directory for usage patterns
  • Check tests/ for edge cases and proper usage

Step 4: Web Search for Context

Search for:

  • Official documentation
  • Best practices and common patterns
  • Known issues and gotchas
  • Performance considerations
  • Alternative libraries

Use MCP tools like context7 for up-to-date documentation.

Step 5: Compare Alternatives (If Applicable)

When multiple solutions exist, create a comparison:

CriterionOption AOption BOption C
Performance.........
API Ergonomics.........
Maintenance Status.........
Bundle Size.........
Learning Curve.........

Include a recommendation with reasoning.


Research Report Template

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

Topic 2: [Name]

...

Alternatives Comparison

CriterionOption AOption BRecommendation
............

Recommendation: [Option X] because [reasoning]

Implementation Recommendations

Based on research, the story should be implemented as follows:

  1. [Specific implementation guidance]
  2. [Pattern to follow]
  3. [Pitfalls to avoid]

Follow-up Research Needed

  • [Topic that needs deeper investigation]
  • [Question that emerged during research]

Knowledge Base Updates

The following should be added to knowledge base:

To knowledge/project/patterns.md:

  • [Pattern specific to this project]

To knowledge/domain/[topic]/:

  • [Reusable knowledge about a library or technique]

---

## 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 {
    // ...
});

Important Notes

  • Thread safety: Runtime is Send + Sync
  • Performance: Use spawn_blocking for CPU-heavy tasks
  • Gotcha: Don't call block_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

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

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.

The English summary is being prepared. Showing the original description.

YougLin-dev/Aha-Loop181Updated Feb 3, 2026

Reviews and cleans up outdated documentation. Use periodically to maintain documentation health. Triggers on: review docs, clean up documentation, check for stale docs.

The English summary is being prepared. Showing the original description.

YougLin-dev/Aha-Loop181Updated Feb 3, 2026

Guides God Committee members through consensus-building for collective decisions. Use for proposals, voting, and disagreement resolution. Triggers on: consensus, voting, proposal, committee decision.

The English summary is being prepared. Showing the original description.

YougLin-dev/Aha-Loop181Updated Feb 3, 2026

Guides God Committee members through executing interventions. Use for repairs, rollbacks, and emergency actions. Triggers on: intervention, repair, rollback, emergency action.

The English summary is being prepared. Showing the original description.

YougLin-dev/Aha-Loop181Updated Feb 3, 2026

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.

The English summary is being prepared. Showing the original description.

YougLin-dev/Aha-Loop181Updated Feb 3, 2026

Logs AI thoughts and decisions for human observability. Applies continuously throughout all tasks to maintain transparency.

The English summary is being prepared. Showing the original description.

YougLin-dev/Aha-Loop181Updated Feb 3, 2026

See all skills by YougLin-dev

Report a problem with this skill