Skip to content

Commit 8ca3d14

Browse files
docs(ADR-003): soften approval gate, add race condition consequence
- Rename "Admin approval gate" → "Gated approval" - "admin" → "permitted users" (workflow-based authorization) - Clarify AND condition: issue must be both approved AND assigned - Add scope-freeze semantic: after approval, deliverable changes need re-approval - Add consequence: self-assignment race condition acknowledged with refresh mitigation - Soften roadmap alignment to reference "permitted user" not "admin" Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 6b724e6 commit 8ca3d14

2 files changed

Lines changed: 8 additions & 6 deletions

File tree

docs/decisions/003-contribution-governance.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ An issue is "ready for work" when the body, together with its linked context —
2121

2222
### Roadmap alignment
2323

24-
Issues align to the [product roadmap](https://github.com/aws-samples/sample-autonomous-cloud-coding-agents/blob/main/docs/guides/ROADMAP.md). Issues that do not align require explicit admin approval.
24+
Issues align to the [product roadmap](https://github.com/aws-samples/sample-autonomous-cloud-coding-agents/blob/main/docs/guides/ROADMAP.md). Issues that do not align require explicit approval from a permitted user.
2525

26-
### Admin approval gate
26+
### Gated approval
2727

28-
Only `admin` users can mark an issue `approved`. Unapproved and unassigned issues are not workable. A GitHub Actions workflow prevents non-admins from adding the `approved` label.
28+
Only permitted users can mark an issue `approved` — a GitHub Actions workflow validates that the label applicant is authorized. An issue is not workable until it is both approved and assigned. After approval, the issue is considered scope-frozen: further revisions that change deliverables require re-approval.
2929

3030
### Self-assignment on start
3131

@@ -75,6 +75,7 @@ CI passes before requesting review. After merge, verify acceptance criteria and
7575
- (-) Pre-start overhead for small tasks
7676
- (-) Requires discipline to fold threads into body
7777
- (!) Assumes priority labels exist and are maintained
78+
- (!) Self-assignment is not atomic — concurrent agents may race; mitigate by verifying assignment after claiming via refresh
7879

7980
## References
8081

docs/src/content/docs/decisions/003-contribution-governance.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ An issue is "ready for work" when the body, together with its linked context —
2525

2626
### Roadmap alignment
2727

28-
Issues align to the [product roadmap](https://github.com/aws-samples/sample-autonomous-cloud-coding-agents/blob/main/docs/guides/ROADMAP.md). Issues that do not align require explicit admin approval.
28+
Issues align to the [product roadmap](https://github.com/aws-samples/sample-autonomous-cloud-coding-agents/blob/main/docs/guides/ROADMAP.md). Issues that do not align require explicit approval from a permitted user.
2929

30-
### Admin approval gate
30+
### Gated approval
3131

32-
Only `admin` users can mark an issue `approved`. Unapproved and unassigned issues are not workable. A GitHub Actions workflow prevents non-admins from adding the `approved` label.
32+
Only permitted users can mark an issue `approved` — a GitHub Actions workflow validates that the label applicant is authorized. An issue is not workable until it is both approved and assigned. After approval, the issue is considered scope-frozen: further revisions that change deliverables require re-approval.
3333

3434
### Self-assignment on start
3535

@@ -79,6 +79,7 @@ CI passes before requesting review. After merge, verify acceptance criteria and
7979
- (-) Pre-start overhead for small tasks
8080
- (-) Requires discipline to fold threads into body
8181
- (!) Assumes priority labels exist and are maintained
82+
- (!) Self-assignment is not atomic — concurrent agents may race; mitigate by verifying assignment after claiming via refresh
8283

8384
## References
8485

0 commit comments

Comments
 (0)