# Orch Council Tally

## Status

- `completed`

## Owner

- codex

## Started At

- `2026-03-19`

## Goal

- implement `orch council tally` so completed reviewer outputs can be parsed, grouped, and persisted as council findings and grouped recommendations

## Scope

- parse reviewer output JSON from completed council reviewer threads
- persist parsed findings into `council_findings`
- group recommendations into `consensus`, `majority`, and `minority` buckets and persist them into `council_groups`
- add integration tests for normal and strict similarity modes
- update the implementation roadmap and archive this workstream when complete

## Checklist

- [x] inspect council tally docs and current council storage
- [x] implement council tally store and CLI command
- [x] add integration coverage for normal and strict tally behavior
- [x] run `go test ./...`
- [x] update `docs/implementation-roadmap.md`
- [x] archive this roadmap with a completion summary

## Files

- `docs/roadmaps/archive/orch-council-tally.md`
- `docs/implementation-roadmap.md`
- `docs/council-review.md`
- `internal/store/council.go`
- `internal/cli/orch/council.go`
- `internal/cli/orch/council_tally.go`
- `internal/cli/orch/integration_test.go`

## Decisions

- read reviewer outputs from the latest `result` message on each reviewer thread
- require reviewer outputs to be valid structured JSON before tallying
- use a simple normalized proposal grouping strategy for v1, with `strict` preserving wording differences and `normal` grouping by normalized intent tokens

## Blockers

- none

## Next Step

- move on to `orch council report`

## Completion Summary

- `orch council tally` now parses structured reviewer output JSON from completed reviewer result messages
- parsed reviewer findings are persisted into `council_findings`, and grouped recommendations are persisted into `council_groups`
- tally supports `normal` and `strict` similarity modes and computes `consensus`, `majority`, and `minority` buckets
