feat(crew): owner-assigned agent roles — spikes 0015-0017 + Slice 1 (#116) - #120
Merged
Conversation
This was referenced Aug 10, 2026
Merged
devin-ai-integration
Bot
force-pushed
the
feat/issue-116-agent-roles
branch
from
August 11, 2026 00:31
90a9974 to
0255ef1
Compare
This was referenced Aug 11, 2026
Merged
Closed
devin-ai-integration
Bot
force-pushed
the
feat/issue-116-agent-roles
branch
from
August 11, 2026 08:46
f22863d to
4f68287
Compare
oscarlehuu
force-pushed
the
feat/issue-116-agent-roles
branch
from
August 11, 2026 11:03
4a7fe50 to
8bb3f62
Compare
devin-ai-integration
Bot
force-pushed
the
feat/issue-116-agent-roles
branch
2 times, most recently
from
August 11, 2026 13:06
e26a0f6 to
45a4db0
Compare
Evidence for issue #116 Slice 0 Spike A: 30179 extensions crew:role and 10100 crew-role tag survive isolated relay round-trip; stock side effect OK. Signed-off-by: oscarlehuu <oscar.lehuu@gmail.com>
Issue #116 Slice 0 Spike B: Hermes code/content + Claude Code matrix; zero off-role mutations; ROLE-CHECK mostly reliable. Signed-off-by: oscarlehuu <oscar.lehuu@gmail.com>
Issue #116 Slice 0 Spike C: per-agent BUZZ_ACP_MCP_COMMAND works; Codex/Claude native writes controlled by sandbox/permission mode. Signed-off-by: oscarlehuu <oscar.lehuu@gmail.com>
Summarize spike 0015–0017 PASS verdicts for local orchestrator review. Signed-off-by: oscarlehuu <oscar.lehuu@gmail.com>
…d per spike 0017 Signed-off-by: oscarlehuu <oscar.lehuu@gmail.com>
Add crew_role on managed-agent records (taxonomy code/content/research/ops), 10100 crew-role projection, buzz-acp role-section injection on fresh session via role file re-read (no respawn), edit UI + chip, and RED contracts. Signed-off-by: oscarlehuu <oscar.lehuu@gmail.com>
Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-Authored-By: Oscar Le <oscar.lehuu@gmail.com>
Signed-off-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-Authored-By: Oscar Le <oscar.lehuu@gmail.com>
oscarlehuu
force-pushed
the
feat/issue-116-agent-roles
branch
from
August 11, 2026 13:37
45a4db0 to
88275d1
Compare
Conflict resolution dropped the named import from agentConfigCore while keeping the call site; restore it so tsc/desktop-build passes.
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
Issue #116 Slice 0 + Slice 1: owner-assigned agent roles on Buzz contracts.
Slice 0 — three spikes, all PASS (evidence-first per
DEVELOPMENT-WORKFLOW.md):docs/crew/spikes/0015-role-record-projection.md— role lives inextensions["crew:role"]on owner-signed kind30179(top-level rejected bydeny_unknown_fields); public projection["crew-role", <role>]on kind10100survives relay round-trip + cold read; stock consumers unaffected. Decision note: client-visible truth is the10100projection.docs/crew/spikes/0016-role-prompt-adherence-matrix.md— engine matrix (Hermes ×2, Claude Code): 30 mentions, 0 silent off-role mutations on all engines.docs/crew/spikes/0017-capability-spawn-grant-deny.md— per-agentBUZZ_ACP_MCP_COMMANDgrant/deny works; decision-changing: dev-mcp deny alone is not an FS floor for any engine; real floor = MCP deny + engine permission flag at spawn (Codex-s read-only, Claude--permission-mode plan) — all spawn-settable.Slice 1 — role per agent (RED contracts → green):
ManagedAgentRecord.crew_role; taxonomycode|content|research|opsin one place (Rust + TS)30179extensions codec +10100projection builder; role removal clears the tagbuzz-acp: role section injected into system prompt on every fresh session iff verified owner-signed role; no role ⇒ byte-identical prompt; role file re-read on session/new (!rotatemodel, no respawn)HERMES.md,STATE.md,DECISIONS.mdD-028/D-029/D-030Verification
cargo test -p buzz-acp --lib crew_role: 7/7 (independently re-run by orchestrator)--lib crew_role: 11/11 (independently re-run)just ci: exit 0 (builder log/tmp/issue116-just-ci.log)Known gaps (honest)
30179dual-write not productized day-one (NIP-PMA private-aggregate authority incomplete upstream); local record +10100projection is the day-one truth per spike 0015plans/20260810-agent-roles-routing-capability/plan.mdCloses #116 Slice 0+1 scope (issue stays open for Slice 2/3).