Skip to content
Back to skills

Weekly Review

ASecurity

Weekly project review report

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
businesspythongobash

Works with

  • cli

Security analysis

A100/100

Scanned October 6, 2026

npx -y skills add aAAaqwq/openclaw-team --skill weekly-review --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Weekly Review?

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

Security grade badge for Weekly Review
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aaaaqwq-weekly-review-openclaw-team/badge)](https://www.skillsdirectory.com/skills/aaaaqwq-weekly-review-openclaw-team)

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: weekly-review
description: Weekly project review report
---
# PM Weekly Review

> Weekly work review -- hours, tokens, progress

## When to use

- "weekly report"
- "what was done this week"
- At the end of the week
- Before planning the next week

## Paths

| What | Path |
|------|------|
| Tasks | `$PM_PATH/pm_tasks_master.csv` |
| Execution Log | `$PM_PATH/pm_execution_log.csv` |
| Learnings | `$PM_PATH/pm_learnings.csv` |
| Script | `$PROJECT_ROOT/projects/scripts/weekly_report.py` |

## Quick start

```bash
cd $PROJECT_ROOT
python3 projects/scripts/weekly_report.py
```

## Manual analysis

```python
import pandas as pd
from datetime import date, timedelta

# Last 7 days
week_ago = str(date.today() - timedelta(days=7))
today = str(date.today())

tasks = pd.read_csv('$PM_PATH/pm_tasks_master.csv')
log = pd.read_csv('$PM_PATH/pm_execution_log.csv')
learnings = pd.read_csv('$PM_PATH/pm_learnings.csv')

# Filter by date
log_week = log[(log['date'] >= week_ago) & (log['date'] <= today)]
```

## Metrics

```python
# Total hours
total_hours = log_week['duration_minutes'].sum() / 60
print(f"Total hours: {total_hours:.1f}")

# Total tokens
total_tokens = log_week['tokens_total'].sum()
print(f"Total tokens: {total_tokens:,}")

# Completed tasks
completed = tasks[(tasks['status'] == 'done') & (tasks['last_updated'] >= week_ago)]
print(f"Tasks completed: {len(completed)}")

# By activity type
by_type = log_week.groupby('activity_type')['duration_minutes'].sum() / 60
print("\nBy type:")
print(by_type)

# By project
by_project = log_week.groupby('project_id')['duration_minutes'].sum() / 60
print("\nBy project:")
print(by_project)
```

## Report format

```
=== WEEKLY REPORT ===
Period: 2025-01-27 — 2025-02-03

METRICS
* Hours: 12.5
* Tokens: 45,230
* Tasks completed: 8

BY PROJECT
* proj-001 (Client D): 6.5 hrs
* proj-002 (CRM): 4.0 hrs
* proj-003 (Infra): 2.0 hrs

BY TYPE
* coding: 5.5 hrs
* research: 3.0 hrs
* planning: 2.0 hrs
* discussion: 2.0 hrs

COMPLETED TASKS
* [proj-001] Send outreach
* [proj-001] Check responses
* [proj-002] Update CRM schema
...

LEARNINGS
* Telegram has a 60 sec limit between messages
* WhatsApp does not sync history
...

BLOCKED
* [proj-003] task-004: Waiting for Tailscale account

NEXT WEEK
* Finish proj-001
* Start proj-004
```

## Saving the report

```python
report_path = f'$PROJECT_ROOT/reports/weekly_{today}.md'
with open(report_path, 'w') as f:
    f.write(report_content)
```

## Related skills

- `show-today` -- what's for today

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…