reporting

SKILL.md

Reporting & Data Distribution

Report Types

Type Data Sources Typical Schedule
Daily Summary journal.md, tasks.md, cron logs 0 18 * * MON-FRI
Project Status orchestration.md, git log, test results On-demand or weekly
Monitoring Report monitors.md, notify history 0 9 * * MON
Custom Report Any combination On-demand

Data Gathering

From memory files

Read .aiter/memory/tasks.md        → pending/completed task counts
Read .aiter/memory/journal.md      → today's activity entries
Read .aiter/memory/orchestration.md → orchestration progress
Read .aiter/memory/monitors.md     → monitor status

From AiTer CLI

# Terminal activity
aiter terminal list | jq '.data | length'  # active terminal count

# Cron job status
aiter cron list | jq '.data[] | {name, lastRun, status}'

# Recent notifications
aiter notify history --limit 10

# Server stats
aiter server stats

# Active tunnels
aiter tunnel list

From project tools

# Git activity (last 24 hours)
git log --since="24 hours ago" --oneline

# Test results
npm test 2>&1 | tail -5

# Build status
npm run build 2>&1 | tail -3

Report Formats

Markdown Report (for IM)

**Daily Summary — 2024-01-15**

📋 **Tasks**
- Completed: 3
- In Progress: 2
- Pending: 4 (1 overdue)

🔄 **Orchestration**
- "E-commerce Platform": Phase 2/3, 65% complete

📡 **Monitoring**
- API Health: ✅ Healthy (99.9% uptime)
- Database: ✅ Connected
- Disk: ⚠️ 78% used

**Cron Jobs**
- 12/12 ran successfully
- 0 failures

📝 **Activity Highlights**
- Deployed auth API to staging
- Resolved API 503 error (auto-remediated)
- Answered 2 IM questions from Alice

HTML Report (for tunnel sharing)

When generating HTML reports for sharing via tunnel:

  1. Create an HTML file in the project directory:
<!DOCTYPE html>
<html>
<head>
  <title>Project Status Report</title>
  <style>
    body { font-family: system-ui; max-width: 800px; margin: 40px auto; padding: 0 20px; }
    .metric { display: inline-block; padding: 16px; margin: 8px; border-radius: 8px; background: #f5f5f5; }
    .metric h3 { margin: 0; color: #666; font-size: 14px; }
    .metric .value { font-size: 32px; font-weight: bold; }
    .healthy { color: #4caf50; }
    .warning { color: #ff9800; }
    .critical { color: #f44336; }
    table { width: 100%; border-collapse: collapse; margin: 16px 0; }
    th, td { text-align: left; padding: 8px; border-bottom: 1px solid #eee; }
    th { background: #f5f5f5; }
  </style>
</head>
<body>
  <h1>Project Status Report</h1>
  <p>Generated: 2024-01-15 18:00</p>

  <div class="metrics">
    <div class="metric">
      <h3>Tasks Completed</h3>
      <div class="value healthy">3</div>
    </div>
    <div class="metric">
      <h3>In Progress</h3>
      <div class="value">2</div>
    </div>
    <div class="metric">
      <h3>Overdue</h3>
      <div class="value critical">1</div>
    </div>
  </div>

  <!-- Add tables, charts, details as needed -->
</body>
</html>
  1. Start file server and create tunnel (see tunnels skill)
  2. Share the tunnel URL

Distribution

Send via IM

# Format report as markdown
REPORT="**Daily Summary — $(date +%Y-%m-%d)**\n\n..."

# Send to primary channel
aiter message send --channel $CHANNEL_ID --text "$REPORT" --format markdown

Send via notification

# Short summary notification
aiter notify send \
  --title "Daily Summary" \
  --message "3 tasks completed, 1 overdue. API healthy. Details: $TUNNEL_URL"

Share via tunnel (detailed reports)

# Write HTML report file
# Start server: aiter server start --projectId $PID
# Create tunnel: aiter tunnel create --localPort $PORT --label "Report"
# Share URL via IM or notification

Report Generation Workflow

Automated daily summary

The heartbeat or cron triggers this flow:

  1. Gather data: Read memory files, query AiTer CLI, run project commands
  2. Compile: Aggregate counts, status, highlights
  3. Format: Create markdown (for IM) or HTML (for sharing)
  4. Distribute: Send via configured channel
  5. Log: Record in journal.md

On-demand report

User requests via /report command or IM message:

  1. Parse request: What type of report? What time range?
  2. Gather: Same as automated, but scoped to request
  3. Format and deliver: Same distribution channels
  4. Respond: If IM-triggered, reply with report content or URL

Report Templates

Weekly Status Template

**Weekly Status — Week of {start_date}**

## Highlights
- {highlight_1}
- {highlight_2}

## Tasks
| Status | Count |
|--------|-------|
| Completed | {n} |
| In Progress | {n} |
| Pending | {n} |
| Overdue | {n} |

## Key Metrics
- API Uptime: {uptime}%
- Builds: {builds_passed}/{builds_total} passed
- Response Time: {avg_ms}ms average

## Next Week
- {planned_1}
- {planned_2}

Incident Report Template

**Incident Report — {date}**

**Severity:** {HIGH/NORMAL/LOW}
**Duration:** {start_time} — {end_time} ({duration})
**Impact:** {description}

## Timeline
- {time}: {event}
- {time}: {event}

## Root Cause
{description}

## Resolution
{what_was_done}

## Prevention
{recommendations}
Weekly Installs
1
Repository
within-7/aiter
First Seen
12 days ago
Installed on
amp1
cline1
openclaw1
opencode1
cursor1
kimi-cli1