Repository navigation
Add exact owner-approved work acceptance - #503
Merged
Merged
Conversation
Prepare exact scope, non-goals, and completion criteria in sealed drafts, and record an owner-approved proposal through a separate accept command. Preserve response approvals, freshness checks, and duplicate/uncertain-write protection without authorizing automated implementation. Keep inline guidance deferred to #502. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
The owner-authorized acceptance path and v3 protocol migration require human rollout review because offline evidence cannot verify live Issue/Discussion permissions or end-to-end publication and retry behavior.
No open issues 🎉
What changed in this PR
Adds exact, owner-approved work acceptance to TypeChat’s discussion automation, separate from advisory replies and authorization to run an implementation agent. Live acceptance verification remains pending.
Changes:
- Adds
/typechat accept <artifact-id>:<acceptance-sha256>with explicit proposal terms, separate approval hashes, and version-3 bundles and intents. - Extends the target-scoped publisher while retaining authorization, freshness, scan, and duplicate-write safeguards.
- Adds acceptance regression coverage and updates operator and contributor guidance; inline implementation notes remain deferred to #502.
| File | Description |
|---|---|
tools/tests/discussion-workflows.test.mjs |
Tests acceptance routing, owner authorization, and target-scoped permissions. |
tools/tests/discussion-draft.test.mjs |
Covers proposal validation, exact acceptance, integrity, retries, and workflow scripts. |
tools/discussion-draft.mjs |
Implements proposal rendering, acceptance validation, publication, and previews. |
README.md |
Updates automation milestones and acceptance rollout status. |
OWNER-CHEATSHEET.md |
Documents exact acceptance commands and safe operator procedures. |
AUTOMATION.md |
Describes acceptance safeguards, protocol changes, and live verification requirements. |
.github/workflows/publish-discussion-draft.yml |
Routes acceptance through the manual publisher and records authorization in receipts. |
.github/workflows/discussion-draft.md |
Defines eligible proposals and separate owner-approval previews. |
.github/workflows/discussion-draft.lock.yml |
Updates generated workflow metadata to match the authored workflow. |
.github/copilot-instructions.md |
Clarifies acceptance authority and its separation from implementation authorization. |
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 an owner-only
/typechat accept <artifact-id>:<acceptance-sha256>command to record agreed work on an Issue or Discussion, separately from publishing an advisory response or authorizing a coding agent./typechat draftprepares the conversational response and, only when ready, a separate work-acceptance preview.Proposals require
in_scope,ready_for_owner_decision, no open questions, and complete nonempty terms and criteria. Other readiness states cannot produce an acceptance preview. These checks support, rather than replace, the owner's judgment.Authorization and safeguards
/typechat publishcannot accept work, and/typechat replyartifacts cannot authorize acceptance.The sealed bundle and publication intent advance to v3. Context and scan bindings remain v1; the direct-reply command marker remains v2 to preserve stable command identity. Old artifacts must be regenerated rather than converted to bypass freshness checks.
Integration and validation
This branch is based on the merged #499 safety fix. The sole-native-
noopcompletion guard is preserved before sealing, including rejection of missing, incomplete, unknown, and mixed failure outputs on both response and acceptance paths.Rollout
Update the operator and contributor guidance, and record the previously verified Issue reply and duplicate-free rerun from run 41226698016. Those live results do not verify the new acceptance extension, manual publication, or Discussions.
No live acceptance has been triggered. After human review and merge, test acceptance only on genuinely agreed, in-scope work using a fresh draft, review the exact preview, and verify one record plus a no-op retry. Verify Issue and Discussion writers separately. This PR does not accept or implement the feature requested in #75, and it does not enable the future implementation budget.