スキル一覧に戻る
Thank-you-Linus

review

by Thank-you-Linus

reviewは、other分野における実用的なスキルです。複雑な課題への対応力を強化し、業務効率と成果の質を改善します。

163🍴 4📅 2026年1月23日
GitHubで見るManusで実行

SKILL.md


name: review description: Review code quality, security, and maintainability before committing. Use when reviewing code changes, checking code quality, performing security review, or validating changes before commit.

Code Review Before Commit

Review code quality, security, and maintainability before committing changes to Linus Dashboard.


Your Role

Senior code reviewer ensuring quality, security, and maintainability.

Context Required:

  1. .aidriven/memorybank.md
  2. .aidriven/rules/ - All rule files
  3. Changed files (git diff)

Review Checklist

1. Code Quality

Readability:

  • Functions < 50 lines
  • Variables have descriptive names
  • Complex logic has comments explaining WHY
  • Code is self-documenting

Structure:

  • Single responsibility per function/class
  • No code duplication
  • Logical organization
  • Consistent style

Type Safety:

  • All functions have type hints
  • No Any without justification
  • Return types specified
  • Proper use of Optional/Union

2. Documentation

  • Module docstrings present
  • Public functions/classes documented
  • Docstrings follow Google style
  • Complex algorithms explained
  • No outdated comments

3. Error Handling

  • Specific exceptions (no bare except)
  • Errors logged with context
  • User-friendly error messages
  • Resources cleaned up (try/finally)
  • No silent failures

4. Async/Await

  • No blocking I/O in async functions
  • All async functions awaited
  • asyncio.gather() for parallel ops
  • Proper timeout handling
  • CancelledError handled

5. Home Assistant Patterns

  • Integration lifecycle correct (setup/unload)
  • Data stored in hass.data[DOMAIN][entry_id]
  • Cleanup registered with entry.async_on_unload()
  • Entities have unique_id
  • Services registered properly
  • Coordinator pattern used correctly

6. Security

  • No hardcoded credentials
  • User input validated
  • SQL injection prevented
  • XSS vulnerabilities addressed
  • API keys stored securely
  • No sensitive data in logs

7. Performance

  • No N+1 queries
  • Expensive operations cached
  • Database queries optimized
  • No memory leaks
  • Async for I/O operations

8. Testing

  • Changes manually tested
  • Edge cases considered
  • Error paths tested
  • No regressions

Review Process

Step 1: Get Changed Files

# See what changed
git status

# View diff
git diff

# Check specific files
git diff path/to/file.py

Step 2: Analyze Changes

For each changed file:

  1. Read the diff
  2. Understand the purpose
  3. Check against standards
  4. Look for issues
  5. Note improvements

Step 3: Check Build and Tests

# TypeScript
npm run build
npm run type-check
npm run lint:check

# Run smoke tests
npm run test:smoke

Step 4: Provide Feedback

Format:

File: path/to/file.py

✅ Good:
- Clear function names
- Proper type hints
- Good error handling

⚠️ Issues:
1. Line 42: Missing docstring
2. Line 78: Blocking I/O in async function
3. Line 103: Exception too broad

💡 Suggestions:
- Consider caching this result
- Extract this logic to separate function

Common Issues to Watch For

Python Issues

Async/Await:

# ❌ Bad - blocking I/O
async def fetch_data():
    response = requests.get(url)  # Blocks event loop

# ✅ Good - async I/O
async def fetch_data():
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            return await response.json()

Error Handling:

# ❌ Bad - bare except
try:
    do_something()
except:
    pass

# ✅ Good - specific exception
try:
    do_something()
except ValueError as err:
    _LOGGER.error("Invalid value: %s", err)
    raise

Type Hints:

# ❌ Bad - no types
def process_data(data):
    return data.get("value")

# ✅ Good - with types
def process_data(data: dict[str, Any]) -> str | None:
    """Process data and return value."""
    return data.get("value")

TypeScript Issues

Type Safety:

// ❌ Bad - any type
function process(data: any): any {
    return data.value;
}

// ✅ Good - proper types
function process(data: DataType): string | undefined {
    return data.value;
}

Null Safety:

// ❌ Bad - no null check
const value = entity.state.toUpperCase();

// ✅ Good - null check
const value = entity.state?.toUpperCase() ?? "unknown";

Security Review Checklist

  • No secrets in code
  • API keys from config
  • User input sanitized
  • SQL queries parameterized
  • HTML output escaped
  • HTTPS for external calls
  • Authentication checked
  • Authorization verified

Performance Review Checklist

  • No synchronous I/O in async code
  • Database queries optimized
  • Caching used appropriately
  • No unnecessary API calls
  • Efficient algorithms
  • Memory usage reasonable

Final Review

Before approving:

Code Quality:

  • Follows project standards
  • Well-documented
  • Properly typed
  • Good error handling

Functionality:

  • Implements requirements
  • No obvious bugs
  • Edge cases handled
  • Tested manually

Maintainability:

  • Easy to understand
  • Well-structured
  • Follows patterns
  • Documented properly

Security:

  • No vulnerabilities
  • Input validated
  • Secrets protected

Review Outcome

APPROVE - Code meets all standards REQUEST CHANGES - Issues must be fixed COMMENT - Suggestions for improvement


Quick Commands

# Check what changed
git diff

# Check specific file
git diff path/to/file

# See commit history
git log --oneline -10

# Run quality checks
npm run lint:check
npm run type-check
npm run build

# Run tests
npm run test:smoke

スコア

総合スコア

80/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

+10
人気

GitHub Stars 100以上

+5
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

レビュー

💬

レビュー機能は近日公開予定です