docs(#5311): add ADR 0073 for named mint privilege levels#5328
docs(#5311): add ADR 0073 for named mint privilege levels#5328fullsend-ai-coder[bot] wants to merge 3 commits into
Conversation
Introduce ADR 0073 deciding the mechanism for named privilege levels under agent roles (read/write), covering mint API, custom role config, client support, acquisition semantics, and harness privilege_levels flag. Update docs/architecture.md with the decision. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
🤖 Finished Review · ✅ Success · Started 5:45 PM UTC · Completed 5:59 PM UTC |
Site previewPreview: https://db55a34f-site.fullsend-ai.workers.dev Commit: |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
ReviewFindingsLow
|
|
/fs-fix the fullsend-ai-review comments according to the following: The "read" permission levels for the built-in roles are determine by taking the current permissions sets and removing a the We will allow mixed format CUSTOM_ROLE_PERMISSIONS since we can write the detection code to allow it. The following statement in the "consequences section is inaccurate:
The mint API itself will default to "read" level and therefore would return narrower tokens then what would be returned today The same goes for the combination of the API and the clients Only the use with harness files that omit |
|
🤖 Fix · ❌ Terminated · Started 4:04 AM UTC · Ended 4:11 AM UTC |
…d compatibility Address review feedback on ADR 0073: - Specify that built-in role read levels are derived by removing *:write permissions from the current permission set - Clarify that CUSTOM_ROLE_PERMISSIONS supports mixed format within a single value (some roles flat, some multi-level), with per-role detection - Fix inaccurate backward-compatibility statement: the mint API defaults to read (narrower tokens), not current behavior; only harness files omitting privilege_levels remain compatible via the write default Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
🔧 Fix agent — iteration 1 (human-triggered)Addressed all three review findings from human instruction on ADR 0073: (1) specified how built-in role read levels are derived (removing *:write permissions from current set), (2) clarified that CUSTOM_ROLE_PERMISSIONS supports mixed format within a single value with per-role detection, (3) corrected the inaccurate backward-compatibility statement — the mint API defaults to read (narrower tokens than today), and only harness-level privilege_levels omission preserves backward compatibility via the write default. Both docs/ADRs/0073-named-mint-privilege-levels.md and docs/architecture.md were updated consistently. Fixed (3):
Tests: passed Updated by fullsend fix agent |
E2E tests did not runE2E tests run automatically for org/repo members and collaborators on pull requests. For other contributors, a maintainer must add the See E2E testing guide for details. |
1 similar comment
E2E tests did not runE2E tests run automatically for org/repo members and collaborators on pull requests. For other contributors, a maintainer must add the See E2E testing guide for details. |
waynesun09
left a comment
There was a problem hiding this comment.
Reviewed by 3-agent squad (Claude, Grok). No blocking findings after verification — all findings downgraded to LOW after confirming design intent with author:
- Wording: "removing all
*:writepermissions" reads as stripping scopes entirely in GitHub API terms; implementation will downgrade toread— consider clarifying in the ADR text - Migration: mint API default-to-
readaffects non-harness callers (reconcileMintToken,mint-tokenCLI, e2e); coordinate in #2823/#2826 - Phase coverage:
validation_loopinheritsruntimelevel — worth a sentence clarifying this is intentional - Format detection:
levelskey as implicit discriminator is fine for now; note as reserved if future forges collide
All cross-references verified (ADRs 0007/0059/0060/0068/0070, issues #2821/#2823/#2826/#5311/#5312, problem docs). Architecture.md updates accurately reflect the ADR.
|
/fs-fix deal with the following comments by @waynesun09
|
|
🤖 Finished Fix · ✅ Success · Started 7:14 PM UTC · Completed 7:20 PM UTC |
- Clarify "removing *:write permissions" means downgrading to read counterparts, not stripping scopes entirely (wording finding) - Note `levels` key is reserved for format discrimination in CUSTOM_ROLE_PERMISSIONS (format detection finding) - Add sentence clarifying validation_loop inherits runtime level intentionally (phase coverage finding) - Name specific non-harness callers (reconcileMintToken, mint-token CLI, e2e) affected by default-to-read, with #2823/#2826 refs (migration finding) - Update docs/architecture.md summary to match wording change Addresses review feedback on #5328
🔧 Fix agent — iteration 2 (human-triggered)Addressed all 4 review findings from @waynesun09. Clarified wording on permission downgrading, named specific non-harness callers affected by default-to-read, documented validation_loop phase inheritance, and noted levels key is reserved for format discrimination. Updated both ADR 0073 and docs/architecture.md. Fixed (4):
Tests: passed Updated by fullsend fix agent |
Summary
read,write) under agent roles, covering mint API, custom role config, client support, acquisition semantics, and harnessprivilege_levelsflagdocs/architecture.mdwith the decision under both Agent Identity Provider and Agent Harness sectionsRelated Issue
Closes #5311
Blocks: #2821 (human-gated permission adjustments ADR)
Implementation follow-on: #2823 (mint implementation)
Topic: #5312
Changes
ADR 0073 (
docs/ADRs/0073-named-mint-privilege-levels.md)New ADR covering seven required areas:
readdefault,writeas current max permissions)levelfield in token requests (defaultread)CUSTOM_ROLE_PERMISSIONSextension with auto-detected multi-level JSON shapemintclientand CLI support for level selectionwriteequals current max permissions; falls back toreadwhen not definedprivilege_levelsflag — maps run phases to levels withdefaultkey; backward-compatibledefault: writewhen omitteddocs/architecture.mdTesting
docs/ADRs/0073-*.mdwith status: Accepteddocs/architecture.mdupdated with the decisionwritelevel defined as current max permissions, with fallback toreadprivilege_levelsharness flag withdefaultkey and backward-compatibledefault: writefallbackrelates_toreferences verifiedChecklist
skills/writing-adrs/SKILL.mdrelates_toreferences valid problem docs (security-threat-model,agent-architecture)scan-secrets --staged)Closes #5311
Post-script verification
agent/5311-named-mint-privilege-levels)24d41836a2de6b7abaa6b20be2bdac9a61f7e0d3..HEAD)