lisa-wiki-add-role
Turn a role definition into two generated artifacts: a documentation page in the wiki and a runnable, brain-pointed subagent on both runtimes. Running the subagent (invocation, scheduling, Telegram / agent-team routing, private notebooks) is out of scope — this skill only creates it.
Workflow
- Resolve the role from a
config.staff[]entry (or interview to add one):id,role,expertise,owns(categories / connectors / skills),sensitivity. - Doc page: generate
wiki/staff/<id>.mddescribing the role, its owned domain, and who it reports to. This page is wiki content and is itself ingestible (therolesconnector). - Subagents (dual-runtime), rendered from the role-agent templates:
- Claude:
.claude/agents/<id>.md. - Codex:
.codex/agents/<id>.toml(keysname,description,developer_instructions; optionalmodel,model_reasoning_effort,sandbox_mode).
- Claude:
- Brain-pointed, not baked: the subagent's instructions say "your domain is
wiki/<owned>/;/queryit first, contribute via/ingest; stay in your lane." It points at the live wiki so it never goes stale. Only its one-linedescriptionis synthesized from the wiki at generation time. - Serialize the description before rendering: derive
roleDescriptionSerializedwithJSON.stringify(roleDescription)or an exact equivalent that emits one JSON string literal on one physical line. Substitute that serialized literal, including its surrounding quotes, directly for{{roleDescriptionSerialized}}in both templates. Do not add another layer of quotes. This keeps colon-space sequences, quotes, backslashes, and runtime newlines exact in both YAML and TOML.
Rules
- v1 instructs lane-keeping but does not enforce per-role write isolation (deferred).
- Setup seeds the starter roster by delegating here per
config.staff[]entry.
Related
lisa-wiki-setup (seeds the roster), lisa-wiki-add-ingest, lisa-wiki-onboard-me.