opdev / opdev/agentic-status-report

M5.1: Manager delivery — Google Doc and team JSON export

Open
#15 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
0
Forks
2
Avg merge
7d 51m
Merged PRs (30d)
8

Description

Summary

Extend report delivery beyond Slack markdown: when the weekly management report is ready, deliver it to managers as a Google Doc plus a structured JSON export containing every teammate's confirmed entries for that week.

Design reference: docs/DESIGN.md §5.4 (Synthesizer), §10 (Configuration), team scale notes (Postgres person roster, no per-user env vars)

Why M5.1 (separate from M5)

M5 (#8) covers synthesizer skill invocation, audit chain (report_run / report_entry), and posting markdown to REPORT_CHANNEL_ID.

M5.1 adds manager-facing artifacts needed for ~20-person team operations:

  • Editable Google Doc (current manual workflow parity)
  • Machine-readable JSON for dashboards, archival, or downstream tooling

Deliverables

1. JSON export
  • CLI: status report --week YYYY-MM-DD --format json -o report-2026-08-14.json
  • Payload includes:
    • week_ending
    • entries[] — all confirmed status_entry rows (person, epic, state, outcome, evidence, blocker, ask)
    • participation[] — per-person status (confirmed, expired, sent, send_failed, on_leave)
    • flags[] — unacknowledged flags for the week
    • report_run metadata when persisted (run id, prompt_version, generated_at)
  • Stable schema documented in docs/DESIGN.md §7
2. Google Docs delivery
  • Google Cloud project + Docs API credentials (service account or OAuth — document chosen approach)
  • Create or update a Doc from synthesizer markdown (template doc optional)
  • Share with manager recipients (Google group or explicit emails)
  • Config env vars (names TBD): GOOGLE_*, REPORT_DOC_FOLDER_ID, MANAGER_EMAILS or roster-driven via person table
3. Manager notification
  • Slack DM or email to managers with:
    • Link to Google Doc
    • Path/attachment reference to JSON export (or upload to shared drive)
  • Triggered by status report --deliver-managers or as part of M6 lock-and-report
4. Person roster (no per-teammate env vars)
  • Managers and teammates tracked in Postgres person table (slack_user_id, jira_account_id, github_login, optional manager_id)
  • Batch seed script for ~20 teammates (CSV/SQL) — not env var explosion

Acceptance criteria

  • JSON export matches confirmed ledger for a pilot week; validated against Postgres
  • Google Doc created/updated with synthesized report content
  • Managers receive Doc link + JSON after status report --deliver-managers
  • Works for multiple confirmed people in one week (not single-pilot only)
  • Secrets documented in deploy/secrets.example.yaml (no credentials committed)

Depends on

  • M5 (#8) — synthesizer produces markdown + audit chain
  • Ops (#10) — roster seeded in Postgres for pilot team

Out of scope

  • Replacing Slack channel report (keep M5 Slack delivery)
  • CronJob scheduling (M6 #9)

Branch / PR

  • Branch: feat/m5.1-manager-delivery
  • Base: main (after M5)
  • PR title: feat(report): Google Doc and JSON delivery for managers (M5.1)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with docs/DESIGN.md sections 5.4, 7, and 10, then inspect the existing status report flow from M5, the Postgres person and confirmed status_entry data, and deploy/secrets.example.yaml. Define the JSON and Google Docs delivery paths without committing credentials; done means the acceptance checks pass for multiple people and --deliver-managers sends both manager artifacts.

Written by the indexing model from the issue text.

Assessment

Tech stack
google-cloud, postgresql, python
Domain
backend, cli, cloud, databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.