Skip to content

Add exact owner-approved work acceptance - #503

Merged
robgruen merged 1 commit into
mainfrom
dev/robgruen/owner-work-acceptance
Nov 1, 2026
Merged

robgruen merged 1 commit into
mainfrom
dev/robgruen/owner-work-acceptance

Conversation

@robgruen

@robgruen robgruen commented Nov 1, 2026

Copy link
Copy Markdown
Contributor

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.

  1. /typechat draft prepares the conversational response and, only when ready, a separate work-acceptance preview.
  2. The owner reviews the proposed goal, scope, non-goals, testable criteria, policy, and contribution references.
  3. The exact acceptance command posts one top-level Accepted work record.

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

  • Response publication and acceptance have different hashes, markers, and intent names. /typechat publish cannot accept work, and /typechat reply artifacts cannot authorize acceptance.
  • Preserve owner/default-branch authorization, successful producer provenance, scan binding, context/policy/PR freshness, expiry, and durable intent-before-write checks.
  • Repeated acceptance of the same exact proposal is a no-op; uncertain writes block retries, and edited or removed records are not automatically rewritten or recreated.
  • Reuse the target-scoped manual publisher. It runs no model and has no repository-content write permission. Acceptance does not launch or authorize an automated implementation run, increase a budget, assign work, close anything, or approve merging.
  • Commands remain command-only. Optional inline implementation guidance is deferred to Automation: support implementation notes with work acceptance #502, not implemented here.

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-noop completion guard is preserved before sealing, including rejection of missing, incomplete, unknown, and mixed failure outputs on both response and acceptance paths.

  • 191 offline automation tests pass with Node 24.22.1, including actual authored-script execution for Issue/Discussion × draft/reply/accept.
  • Both workflows compile with pinned gh-aw v0.93.5 in strict mode: zero warnings and no generated-file drift on repeat compilation.
  • 95 local documentation links/anchors and whitespace checks pass.
  • Project-direction policy, dependencies, runtime pin, shared model/budget settings, action pins, and backlog workflow are unchanged.

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.

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>
Copilot AI balanced review requested due to automatic review settings November 1, 2026 16:30

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 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

@robgruen
robgruen merged commit 02df292 into main Nov 1, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants