Files
stack/roles/pm.json
T
jason.woltjeandClaude Opus 5.5 94e41ae29e roles: add the assistant role, move role.launch from the PM to the chief of staff (row 119, #1613)
roles/assistant.json and assistant.md are new. The assistant holds only
message.send and relays each ruling verbatim to the chief of staff. The
chief of staff gains role.launch; the PM drops it. Test fixtures move
launch.by from "pm" to a `chief` instance.

This does not change the live host. Jason's organization file names
launch.by "pm", which the new role files refuse, so his edit and the
re-pin happen together in one Mos window (decision 144; the order is in
agents/researcher/work/queue-119/build.md).

Lands Researcher's round 2 candidate, approved by Filbert in comment
28528 (rev 1240). Candidate manifest f77c4917, all 22 files match.
Landing gate on 46117feb8: 23 suites, GATE_PASSED 01:09:35Z.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-14 20:10:11 -05:00

31 lines
902 B
JSON

{
"roleVersion": 2,
"name": "pm",
"title": "Product manager",
"contract": "pm.md",
"tools": ["read", "write", "edit", "grep", "find", "ls"],
"network": "api-only",
"authority": {
"withinRole": ["task.create", "task.assign", "task.reassign", "task.schedule", "task.update.assigned", "task.close", "message.send"],
"crossRole": ["task.priority.change", "task.scope.change"]
},
"credentials": [
{
"service": "gitea",
"scopes": ["write:issue", "read:repository", "read:user"]
},
{
"service": "vikunja",
"scopes": {
"tasks": ["read_one", "create", "update"],
"tasks_assignees": ["create", "delete"],
"tasks_relations": ["create", "delete"],
"tasks_labels": ["create", "delete"],
"tasks_comments": ["create"],
"labels": ["read_all"],
"projects": ["views_buckets_tasks"]
}
}
]
}