docs: explain required proposer field on Proposal (ADR-002 followup)#14
docs: explain required proposer field on Proposal (ADR-002 followup)#14
Conversation
Code examples already include proposer (PR #11), but the README didn't explain what it represents or why it's required. Add a short paragraph after Quick Start that defines proposer, notes it must be non-anonymous, and links to ADR-002 for the audit-trail attribution rationale. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughUpdated README.md documentation to clarify that the Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Code Review
This pull request updates the README.md to document the proposer field as a mandatory requirement for attribution in audit trails. Feedback was provided to clarify the security validation differences between registered and unregistered identifiers, along with minor grammatical and consistency improvements.
| // → Escalated to supervisor agent or human reviewer | ||
| ``` | ||
|
|
||
| `proposer` is a required string identifying who is requesting the action — typically an agent id (`"deploy-bot"`), but any identifier works (`"human"`, `"ci-runner"`). Tegata rejects anonymous proposals because every audit-trail entry must carry attribution; unattributed actions defeat the point of a governance SDK. See [ADR-002](docs/adr/002-require-proposer-in-proposal.md) for the rationale. |
There was a problem hiding this comment.
While any string is technically accepted as a proposer, it's important to clarify that only identifiers registered via registerAgent() undergo capability and risk-score validation. Using an unregistered string (like "human") bypasses these automated security checks. Additionally, 'ID' should be capitalized for consistency, and 'audit trail' is typically written without a hyphen when used as a noun.
| `proposer` is a required string identifying who is requesting the action — typically an agent id (`"deploy-bot"`), but any identifier works (`"human"`, `"ci-runner"`). Tegata rejects anonymous proposals because every audit-trail entry must carry attribution; unattributed actions defeat the point of a governance SDK. See [ADR-002](docs/adr/002-require-proposer-in-proposal.md) for the rationale. | |
| `proposer` is a required string identifying who is requesting the action — typically an agent ID (`"deploy-bot"`), but any identifier works (`"human"`, `"ci-runner"`). Note that identifiers registered via `registerAgent()` enable additional capability and risk-score validation. Tegata rejects empty proposer strings because every audit trail entry must carry attribution; unattributed actions defeat the point of a governance SDK. See [ADR-002](docs/adr/002-require-proposer-in-proposal.md) for the rationale. |
Summary
proposeris and why it's required, right after the Quick Start exampleContext
PR #11 already added
proposerto the README code examples so they compile against the requiredProposal.proposer: stringfield introduced in ADR-002. What was still missing: a short prose explanation of what the field represents and why readers must supply a value. This PR adds that explanation near Quick Start — the spot a copy-paste user hits first — without touching the ADRs (immutable by convention).Test plan
pnpm run typecheck— green.tsfile and rantsc --noEmit— no errorsgrep proposer README.mdconfirmsproposer:appears in everypropose({...})literal and the new prose paragraph sits adjacent to Quick Start🤖 Generated with Claude Code
Summary by CodeRabbit