Skip to content
Back to skills

Codegeass Testing

CSecurity

Comprehensive pre-merge testing for CodeGeass. Tests PR changes FIRST, then runs regression tests on all CLI commands and Dashboard API endpoints.

  • 666 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added February 8, 2026
toolspythonbashtestinggitapifrontendbackendsecurity

Works with

  • cli
  • api

Security analysis

C72/100
  • mediumUses curl or wget to download content
  • criticalDownloads and executes remote scripts — classic supply chain attack
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill codegeass-testing --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Codegeass Testing?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Codegeass Testing
[![Security: C — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-codegeass-testing/badge)](https://www.skillsdirectory.com/skills/majiayu000-codegeass-testing)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: codegeass-testing
description: Comprehensive pre-merge testing for CodeGeass. Tests PR changes FIRST, then runs regression tests on all CLI commands and Dashboard API endpoints.
allowed-tools: Bash, Read, Write, Glob, Grep
---

# CodeGeass Pre-Merge Testing

**CRITICAL**: This skill tests PR changes FIRST, then runs regression tests to ensure nothing is broken.

## Dynamic Context (injected before execution)

### PR/Branch Context
!`git branch --show-current 2>&1`
!`git log --oneline -5 2>&1`

### Files Changed in This PR
!`git diff --name-only HEAD~5 2>&1 | head -30`
!`git diff --stat HEAD~5 2>&1 | tail -20`

### Modified Backend Files (routers/services)
!`git diff --name-only HEAD~5 -- "*.py" 2>&1 | grep -E "(routers|services|cli)" | head -20`

### Diff of Modified Router Files
!`git diff HEAD~5 -- "**/routers/*.py" 2>&1 | head -100`

### Diff of Modified Service Files
!`git diff HEAD~5 -- "**/services/*.py" 2>&1 | head -100`

### CLI Overview
!`codegeass --help 2>&1`

### Current Tasks (for testing filters)
!`codegeass task list 2>&1 | head -30`
!`codegeass task tag list 2>&1`

### Dashboard Health
!`curl -s http://localhost:8001/health 2>&1 || echo "Dashboard not running"`

---

## Test Execution Instructions

**Order matters**: Test PR changes FIRST, then run regression tests.

---

## Phase 0: Prerequisites

1. **Verify codegeass installation**:
   ```bash
   which codegeass && codegeass --version
   ```

2. **Start Dashboard if not running**:
   ```bash
   curl -s http://localhost:8001/health || {
     nohup codegeass dashboard > /tmp/dashboard.log 2>&1 &
     sleep 3
   }
   ```

3. **Create test task with tags** (for filter testing):
   ```bash
   codegeass task create \
     --name "cg-test-task" \
     --schedule "0 0 * * *" \
     --prompt "Test task for pre-merge testing" \
     --working-dir "$(pwd)" \
     --model haiku \
     --tag test --tag automation
   ```

---

## Phase 1: PR Feature Testing (PRIORITY)

**CRITICAL**: Analyze the git diff and test ALL new/modified functionality FIRST.

### 1.1 Identify What Changed

Look at the dynamic context above to identify:
- Which routers were modified (e.g., `routers/tasks.py`)
- Which services were modified (e.g., `services/task_service.py`)
- Which CLI commands were modified
- What new parameters/endpoints were added

### 1.2 Test New API Parameters

If `routers/tasks.py` was modified, check for new query parameters and test each one:

```bash
# Example: If search/filter was added to GET /api/tasks
# Test search parameter
curl -s "http://localhost:8001/api/tasks?search=test" | python3 -c "
import sys,json
d=json.load(sys.stdin)
print(f'search=test: {len(d)} results')
for t in d[:3]: print(f'  - {t[\"name\"]}')"

# Test tags filter
curl -s "http://localhost:8001/api/tasks?tags=test" | python3 -c "
import sys,json
d=json.load(sys.stdin)
print(f'tags=test: {len(d)} results')
for t in d[:3]: print(f'  - {t[\"name\"]}')"

# Test status filter
curl -s "http://localhost:8001/api/tasks?status=success" | python3 -c "
import sys,json
d=json.load(sys.stdin)
print(f'status=success: {len(d)} results')"

# Test model filter
curl -s "http://localhost:8001/api/tasks?model=opus" | python3 -c "
import sys,json
d=json.load(sys.stdin)
print(f'model=opus: {len(d)} results')"

# Test enabled filter
curl -s "http://localhost:8001/api/tasks?enabled=true" | python3 -c "
import sys,json
d=json.load(sys.stdin)
print(f'enabled=true: {len(d)} results')"

# Test combined filters
curl -s "http://localhost:8001/api/tasks?search=test&enabled=true" | python3 -c "
import sys,json
d=json.load(sys.stdin)
print(f'search+enabled: {len(d)} results')"
```

### 1.3 Test New CLI Options

If CLI commands were modified, test any new options:

```bash
# Example: If --search or --filter was added to task list
codegeass task list --help  # Check for new options
```

### 1.4 Test Edge Cases for New Features

```bash
# Empty search
curl -s "http://localhost:8001/api/tasks?search=" | python3 -c "
import sys,json; d=json.load(sys.stdin); print(f'Empty search: {len(d)} results (should return all)')"

# Non-existent tag
curl -s "http://localhost:8001/api/tasks?tags=nonexistent" | python3 -c "
import sys,json; d=json.load(sys.stdin); print(f'Non-existent tag: {len(d)} results (should be 0)')"

# Invalid status
curl -s "http://localhost:8001/api/tasks?status=invalid"
# Should return 422 validation error

# Multiple tags
curl -s "http://localhost:8001/api/tasks?tags=test&tags=deploy" | python3 -c "
import sys,json; d=json.load(sys.stdin); print(f'Multiple tags: {len(d)} results')"
```

### 1.5 Verify Frontend Integration (if applicable)

If frontend files were modified:
```bash
# Check if frontend build works
cd dashboard/frontend && npm run build 2>&1 | tail -10

# Or just verify the static files were updated
ls -la src/codegeass/dashboard/static/assets/*.js | head -5
```

---

## Phase 2: Regression Testing (CLI Commands)

Test all CLI commands to ensure PR didn't break anything.

### 2.1 Task Commands
```bash
codegeass task list
codegeass task show cg-test-task
codegeass task stats cg-test-task
codegeass task enable cg-test-task
codegeass task disable cg-test-task
codegeass task update cg-test-task --timeout 120
codegeass task tag list
codegeass task tag show test
```

### 2.2 Skill Commands
```bash
codegeass skill list
codegeass skill show release
codegeass skill validate release
codegeass skill render release "1.0.0"
codegeass skill reload
```

### 2.3 Scheduler Commands
```bash
codegeass scheduler status
codegeass scheduler upcoming
codegeass scheduler due
codegeass scheduler show-cron
codegeass scheduler test-cron
```

### 2.4 Other Command Groups
```bash
codegeass logs list --limit 5
codegeass logs stats
codegeass notification list
codegeass notification providers
codegeass approval list
codegeass approval stats
codegeass cron validate "0 * * * *"
codegeass cron describe "0 9 * * 1-5"
codegeass data stats
codegeass data location
codegeass provider list
codegeass provider check
codegeass execution list
codegeass project list
codegeass project platforms
```

---

## Phase 3: Regression Testing (API Endpoints)

### 3.1 Core Endpoints
```bash
curl -s http://localhost:8001/health
curl -s http://localhost:8001/api/tasks
curl -s http://localhost:8001/api/skills
curl -s http://localhost:8001/api/scheduler/status
curl -s http://localhost:8001/api/logs?limit=5
curl -s http://localhost:8001/api/notifications/channels
curl -s http://localhost:8001/api/approvals
curl -s http://localhost:8001/api/executions
curl -s http://localhost:8001/api/projects
curl -s http://localhost:8001/api/providers
```

### 3.2 CRUD Operations
```bash
# Create task via API
curl -s -X POST http://localhost:8001/api/tasks \
  -H "Content-Type: application/json" \
  -d '{"name": "cg-api-test", "schedule": "0 0 * * *", "prompt": "API test", "working_dir": "'"$(pwd)"'"}'

# Verify in CLI
codegeass task show cg-api-test

# Delete via API
TASK_ID=$(codegeass task show cg-api-test 2>&1 | grep "^│ ID:" | awk '{print $3}')
curl -s -X DELETE http://localhost:8001/api/tasks/$TASK_ID
```

---

## Phase 4: Integration Testing

### 4.1 CLI-to-API Consistency
```bash
# Create via CLI
codegeass task create --name "cg-integration" --schedule "0 0 * * *" --prompt "test"
# Verify in API
TASK_ID=$(codegeass task show cg-integration 2>&1 | grep "^│ ID:" | awk '{print $3}')
curl -s http://localhost:8001/api/tasks/$TASK_ID | grep -q "cg-integration" && echo "PASS"
# Cleanup
codegeass task delete cg-integration --yes
```

### 4.2 Architecture Check
```bash
# Verify Dashboard uses CLI library
grep -c "from codegeass\." src/codegeass/dashboard/services/*.py
grep -c "from codegeass\." src/codegeass/dashboard/routers/*.py
```

---

## Phase 5: Cleanup

```bash
codegeass task delete cg-test-task --yes 2>/dev/null || true
```

---

## Phase 6: Generate Report

Create JSON report at `data/test-reports/pre-merge-<timestamp>.json`:

```json
{
  "timestamp": "<ISO>",
  "branch": "<branch>",
  "commit": "<hash>",
  "pr_changes": {
    "files_modified": ["<list>"],
    "new_features_tested": ["<list>"],
    "all_passed": true|false
  },
  "summary": {
    "total_tests": <n>,
    "passed": <n>,
    "failed": <n>,
    "success_rate": "<pct>"
  },
  "pr_tests": {
    "total": <n>,
    "passed": <n>,
    "failed": <n>,
    "results": [...]
  },
  "regression_tests": {
    "cli": {"passed": <n>, "failed": <n>},
    "api": {"passed": <n>, "failed": <n>}
  },
  "failures": []
}
```

---

## Quick Reference: Common PR Test Patterns

### If `routers/tasks.py` modified:
```bash
# Test all query params
curl -s "http://localhost:8001/api/tasks?search=X"
curl -s "http://localhost:8001/api/tasks?tags=X"
curl -s "http://localhost:8001/api/tasks?status=X"
curl -s "http://localhost:8001/api/tasks?model=X"
curl -s "http://localhost:8001/api/tasks?enabled=X"
curl -s "http://localhost:8001/api/tasks?summary_only=true"
```

### If `routers/skills.py` modified:
```bash
curl -s http://localhost:8001/api/skills
curl -s http://localhost:8001/api/skills/{name}
curl -s "http://localhost:8001/api/skills/{name}/preview?arguments=X"
```

### If `services/task_service.py` modified:
```bash
# Test filtering logic
curl -s "http://localhost:8001/api/tasks?search=security"
curl -s "http://localhost:8001/api/tasks?tags=deploy&enabled=true"
```

### If CLI commands modified:
```bash
codegeass <command> --help  # Check new options
codegeass <command> <new-option>  # Test it
```

---

## Troubleshooting

| Issue | Fix |
|-------|-----|
| Dashboard not running | `codegeass dashboard &` |
| 422 Validation Error | Check query param format |
| Empty results | Verify test data exists |
| Import errors | `pip install -e .` |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.