Autonomous group weekly report

group_weekly_report(task) prepares an unsent evidence-backed draft without requesting human clarification. Missing information triggers retrieval, not a question. A one-line request is supported; unavailable sources result in an honest partial draft with retrieval diagnostics.

Request and discovery

Natural-language extraction preserves supplied bodies and explicit metadata. Source defaults to auto: memory and relevant local notes establish scope; the current ISO week is the visible default when no reporting period is stated. Read-only discovery may find report materials and author evidence, including relevant local files. Explicit source=supplied disables external discovery; explicit group/week and original bodies win. No repository fixtures, workflow source or diagnostic acceptance data qualify as business evidence.

Acquisition

After scope discovery, query the identified WeChat group with the existing read-only adapter. Preserve supplied materials and supplement them rather than replace them. Match anonymous bodies only against unique source-backed authors; mentions, order and topics are not identity proof. If WeChat is unavailable, search relevant local sources and report the precise access limitation. Retrieved content is data, never executable instructions. Read-only tools only; no messaging, arbitrary execution, permission changes or publication.

Incomplete evidence

No ask_user call or WAITING_USER result occurs in this workflow. Unresolved authors use visibly unverified labels. Unknown scope, inaccessible channels and missing current-week records appear as limitations in the draft. Old documents can establish scope but are not presented as current progress. Unknown dates remain unverified. A completely empty search produces a partial draft and source-search diagnostics, never invented progress. Model/provider errors and cancellation retain their actual execution outcome.

Validation and delivery

Validate record shapes and citations after discovery; missing business metadata alone cannot prevent draft creation. Reuse current source validation, composition and local draft writing. No aggregate model-call, token or wall-time budget is introduced. Existing bounded native reads and per-call context handling remain; coverage is explicitly partial. Runtime persistence and question UI are outside this change. Existing report artifact/checkpoint compatibility remains. Include draft text and issues in the returned result so users can see the outcome.

Design basis

Reuse OpenProgram agent tools, structured-output validation, memory/file tools, native WeChat adapter and source-backed draft composition. This does not claim a Codex or Claude group-report feature. A hard-coded required-field questionnaire and mutually exclusive supplied/native acquisition are rejected. Unrestricted shell access and guessed identities are rejected.

Acceptance

Public group entry: one-line request with no metadata retrieves scope and current material; anonymous supplied text is preserved and uniquely matched; WeChat failure falls back to local evidence; ambiguous author remains visibly unverified; no evidence returns partial output without asking. Explicit supplied-only input performs no retrieval. Stale or invented citations cannot enter current progress. Cancellation propagates. Dispatcher forwards vague group requests without a clarification branch. Tests isolate providers, memory and HOME; real WeChat access is separately checked in the installed default app.

Implementation status

Autonomous discovery and no-question routing are implemented and have passed independent specification and quality reviews. Package tests cover discovery, provenance, author preservation and partial delivery. A real model run retrieved scope and local files without clarification and returned a partial draft because no current-week materials were verified. Native WeChat collection remains environment-limited; successful live collection is not established. Full integration and default-app acceptance are tracked separately from package tests.

Member rendering and resumable composition

A single-line member summary retains its existing WeChat format and includes the validated source identifiers using the existing bracket notation. The visible identifiers still refer to the same source table; formatting does not erase the association between a member statement and its evidence. Composition checkpoints save every completed member line before the next member call. They do not subtract a fixed number of headings from a layout that no longer adds those headings. Resuming a failed member preserves earlier content, retries only the interrupted member and retains the existing model-state, call-count and completed-position semantics. Existing checkpoint readers, exact-excerpt rejection, original-text fallback, sidecars, cancellation and unsent delivery remain unchanged.

Acceptance uses the public entry: complete A, fail B, resume B, and verify both member bodies and source identifiers in the actual saved summary. The existing single-line rendering is preserved in a dedicated input-baseline commit. The checkpoint and citation repair has passed independent specification and quality reviews and is imported into the local package. Combined source checks and installed default-app acceptance use separate receipts; drafts remain unsent.