# Orch Council Report

## Status

- `completed`

## Owner

- codex

## Started At

- `2026-03-19`

## Goal

- implement `orch council report` so persisted grouped recommendations can be rendered as a final council report in human-readable markdown and stable JSON output

## Scope

- add `orch council report` with `--run`, `--show`, and `--json`
- read grouped recommendations from persisted `council_groups`
- render a markdown report for the requested buckets and persist report metadata if needed by the existing design
- add integration coverage for default output, `--show all`, and JSON shape
- run `go test ./...`, update the implementation roadmap, and archive this workstream when complete

## Checklist

- [x] inspect council report requirements, current council store, and CLI/test patterns
- [x] implement council report store and CLI command
- [x] add integration coverage for default buckets, `--show all`, and JSON output
- [x] run `go test ./...`
- [x] update `docs/implementation-roadmap.md`
- [x] archive this roadmap with a completion summary

## Files

- `docs/roadmaps/archive/orch-council-report.md`
- `docs/implementation-roadmap.md`
- `docs/council-review.md`
- `internal/store/council.go`
- `internal/cli/orch/council.go`
- `internal/cli/orch/council_report.go`
- `internal/cli/orch/integration_test.go`
- `internal/db/schema/007_council_reports.sql`

## Decisions

- keep the scope limited to report rendering on top of existing persisted council data
- persist final report metadata in a dedicated `council_reports` table so the last rendered report artifact path can be recovered without re-reading files
- place markdown artifacts under a `.orch/reports/` tree rooted next to the active database context so tests and non-default databases do not dirty the repository root

## Blockers

- none

## Next Step

- none

## Completion Summary

- added `orch council report` with `--run`, `--show`, and `--json` on top of persisted `council_groups`
- report rendering now produces human-readable markdown, writes a markdown artifact, and persists final report metadata in `council_reports`
- integration coverage now verifies default `consensus,majority` output, `--show all`, and the JSON response shape
