Repository navigation
Add owner-commanded checked replies for Issues and Discussions - #498
Merged
Merged
Conversation
Let /typechat reply authorize one checked conversational response while preserving preview-only drafts and exact-text publication. Keep the assessment in Actions and enforce same-run provenance, per-command deduplication, and uncertain-write blocking. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Both discussion writers can publish candidates from runs emitting report_missing_data before failure is recorded because no trusted pre-publication check rejects those outputs.
1 open issue
What changed in this PR
Adds owner-commanded /typechat reply to TypeChat’s Issue and Discussion automation, extending the draft workflow from #495 without authorizing implementation or accepting work.
Changes:
- Adds target-scoped reply jobs with provenance, freshness, and duplicate-write checks while preserving draft/publish approval.
- Separates conversational public responses from assessments retained in Actions.
- Expands offline regression coverage and documents authorization boundaries and pending live verification.
| File | Description |
|---|---|
tools/tests/discussion-workflows.test.mjs |
Checks reply permissions, stage gates, and workflow wiring. |
tools/tests/discussion-draft.test.mjs |
Covers direct replies, integrity, reruns, and uncertain writes. |
tools/discussion-draft.mjs |
Implements reply authorization, rendering, and publication checks. |
README.md |
Updates automation capabilities and rollout status. |
OWNER-CHEATSHEET.md |
Documents reply commands and safe recovery steps. |
AUTOMATION.md |
Explains reply safeguards, protocol changes, and verification plans. |
.github/workflows/publish-discussion-draft.yml |
Preserves the publication helper’s returned receipt hash. |
.github/workflows/discussion-draft.md |
Adds trusted reply jobs and conversational response instructions. |
.github/workflows/discussion-draft.lock.yml |
Updates the compiled workflow for direct replies. |
.github/copilot-instructions.md |
Clarifies command authorization and public-response boundaries. |
Review effort: Balanced
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Add
/typechat replyso the owner can request one checked, conversational public response without downloading a report and issuing a second publication command./typechat draftas preview-only and/typechat publish <artifact-id>:<sha256>as exact-text approval.Authorization and safety
/typechat replyis advance authorization for one advisory response, not approval of the exact generated wording. It does not accept work, change project scope, authorize implementation, close issues, or merge anything. The approved project-direction policy and inference budgets are unchanged.Direct publication requires successful generation, an executed successful threat scan, sealing, freshness checks, and a sealed artifact bound to the same workflow run and original owner command. Unlike manual publication, the enclosing run need not already be completed: trusted successful upstream-stage attestations are mandatory. Writer-only reruns may reuse successful upstream stages from an earlier attempt of that same run. Manual publication still requires a completed successful producer run.
Stable per-command markers and durable intents enforce one reply across regeneration and reruns. Already-answered commands skip inference at the job level; uncertain writes block retries rather than risking duplicate comments. No synthetic pre-agent completion is seeded. The sealed response bundle advances to v2, while context and scan-binding versions remain unchanged.
Validation
npm testfromtools: 153 passed, zero failed or skipped.Rollout
No live reply has been triggered. After human review and merge, a new owner
/typechat replycomment will authorize a public response. Verify the Issue and Discussion paths separately, including exactly one response and a no-op rerun; retain coverage of the manual draft/publish path. The successful production run on the previous revision verifies draft generation only, not this new direct mode.Follow-up to #495. Issue #75 motivated the delivery improvement; this PR does not implement its usage-reporting feature or close that issue.