You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Birth the community conductor — "the Voice" — the PyAutoBrain agent that listens to and communicates with external users and the community. Today a user-filed GitHub issue is handled ad-hoc (paste the link into an agent chat). This task formalises the loop: discover issues raised by non-Jammy humans across all repos, assess each issue's context sufficiency, draft every outward reply for human approval, route actionable work into the existing dev workflow, and keep reporters updated. It also gives /wake_up a community sensory leg so the day starts with "who is waiting on us?".
Plan
Create agents/conductors/community/ in PyAutoBrain, following the hygiene conductor birth template (feat(hygiene): hygiene conductor — phase 1 scaffold + boundaries (#87) #88). The AGENTS.md first line carries the organism analogy: "the Voice — the organism's language faculty (Broca + Wernicke): it hears the community and speaks back."
Deterministic CLI modes: scan (gh sweep of every repos.yaml repo for open issues/comments from non-Jammy humans awaiting a response, ranked, --json) and triage <issue-ref> (one issue → CommunityDecision: context sufficient? work-type? route or clarify). Default = scan worklist. triage may ship v1-lite (staged, like hygiene's phase-1 modes).
The conversation layer is the /community skill body (judgment tier): read the issue, assess context, draft the full reply or clarifying question — every outward message is presented to the human before posting. Actionable work routes into the existing /start_dev_for_user (which already owns receipt/plan/milestone comments and the clarification gate).
No new state: conversation state lives on GitHub (labels, e.g. needs-info) plus the existing user-facing: true entries in PyAutoMind/active.md.
/wake_up sensory leg: new step in the gh-API "Everywhere" section running pyauto-brain community scan, plus a 💬 Community digest category — mobile-safe, listed for the human, never auto-replied.
Register the verb everywhere the hygiene birth did: bin/pyauto-brain dispatch/usage/CONDUCTOR_ORDER, skills/community/{SKILL.md,community.md}, skills/COMMANDS.md, PyAutoBrain AGENTS.md tables; scaffold tests; bin/install.sh.
Detailed implementation plan
Affected Repositories
PyAutoBrain (primary, only)
Branch Survey
Repository
Current Branch
Dirty?
./PyAutoBrain
main
1 modified (agents/conductors/intake/_intake.py, other session)
Suggested branch:feature/community-voice-agent Worktree root:~/Code/PyAutoLabs-wt/community-voice-agent/ Blocked by:workspace-agent (PyAutoBrain#116) — claims PyAutoBrain and touches the same registration files (bin/pyauto-brain, AGENTS.md, skills/COMMANDS.md). Start after it ships.
Implementation Steps
agents/conductors/community/AGENTS.md — opens with the Tier: conductor blockquote whose first line is the analogy: "the Voice — the organism's language faculty (Broca + Wernicke): it hears the community and speaks back." Sections mirroring hygiene: Modes table (scan / triage / default), Fundamental principles (draft-for-approval — the conductor never posts to GitHub; GitHub + active.md are the state, the conductor owns none; stdlib/bash only), Boundaries (vs intake — community converses with an external reporter and routes; intake files prompts from the developer's raw ideas; vs start_dev_for_user — community is discovery + conversation + routing, start_dev_for_user is the dev entry it delegates to; vs wake_up — wake_up composes the scan, owns nothing here; vs health/hygiene — no verdicts, no upkeep), Capability audit (gh search/issues API, issue labels, start_dev_for_user, update_issue).
agents/conductors/community/community.sh + _community.py (stdlib-only) — scan: enumerate repos from PyAutoMind/repos.yaml (org PyAutoLabs + the three Jammy2211-owned), gh api search/issues for open issues where the author is not Jammy2211/bots, plus open issues whose last comment is not ours (awaiting-response detection); rank by age/waiting-time; emit CommunityDecision with --json. triage <ref>: fetch one issue, surface title/body/author/labels/comment-tail + a context-sufficiency checklist for the skill layer; v1-lite acceptable (deterministic surface, judgment stays in the session).
skills/community/{SKILL.md,community.md} — the /community door. Flow: scan → pick issue → triage surface → session assesses context → EITHER draft clarifying question (present to human → post → needs-info label) OR draft receipt+route into /start_dev_for_user → ongoing updates via /update_issue cadence (~5 milestones bugs, 4 features). Every comment body presented for review before posting.
skills/wake_up/wake_up.md — new step in "Everywhere (gh-API)" section: Community — bin/pyauto-brain community scan; digest gains 💬 Community category ("N users waiting on a response, oldest X days"). Update the digest card list.
Tests — scaffold tests mirroring the hygiene conductor's (decision emission, --json shape, repos.yaml enumeration, author filtering with fixture JSON; no live gh calls).
bin/install.sh — run to install the /community command; verify the symlink lands.
skills/start_dev_for_user/{start_dev_for_user.md,reference.md} — the existing user-issue dev entry + comment templates the conductor delegates to (do not duplicate).
PyAutoMind/repos.yaml — repo enumeration source for the scan.
Original Prompt
Click to expand starting prompt
PyAutoMind prompt: draft/feature/pyautobrain/community_communication_agent_listen_and_respond.md (moves to active/ on issue creation)
I need to think about how I communicate with users and people who put up github issues with requests for new features,
bugs, etc.
Currently, I would just put the GitHub link into a agent chat and go from there but we can formalism this.
First, the wake up skill should give a summary of whether other users (e.g. not me) have raised issues across
any repos so I can then rspond to them.
Do we need a dedicated brain agent for listening to and communicating with users and the community? I dont see why not,
I'm not exactly gonna go to GitHub adn do this myself. I think the agent would be incharge of routing the task,
finding the right brain agent to implement it, and giving the poster updates on whats going on. The point is this
agent knows its communicating with someone else and thus in a conversation, and should really read their github
issue and assess if what theyve provided is enough context or if it should ask for more. so it should pretty much
draft the whole response, assess the issue itself and only real on me to guide it.
This agent could be called ears? listed? but it also talks to the user, so communicate? Think about the brain
conductor organ analogy.
Intake review decisions (2026-07-16): name /community alias "the Voice" (description first line carries the analogy); one prompt, two legs (wake_up summary + conductor); autonomy human-required — outward messages are drafts gated on the human; anchors on start_dev_for_user, /wake_up, the user-facing-issue update cadence; difficulty medium.
Overview
Birth the community conductor — "the Voice" — the PyAutoBrain agent that listens to and communicates with external users and the community. Today a user-filed GitHub issue is handled ad-hoc (paste the link into an agent chat). This task formalises the loop: discover issues raised by non-Jammy humans across all repos, assess each issue's context sufficiency, draft every outward reply for human approval, route actionable work into the existing dev workflow, and keep reporters updated. It also gives
/wake_upa community sensory leg so the day starts with "who is waiting on us?".Plan
agents/conductors/community/in PyAutoBrain, following the hygiene conductor birth template (feat(hygiene): hygiene conductor — phase 1 scaffold + boundaries (#87) #88). The AGENTS.md first line carries the organism analogy: "the Voice — the organism's language faculty (Broca + Wernicke): it hears the community and speaks back."scan(gh sweep of every repos.yaml repo for open issues/comments from non-Jammy humans awaiting a response, ranked,--json) andtriage <issue-ref>(one issue → CommunityDecision: context sufficient? work-type? route or clarify). Default = scan worklist.triagemay ship v1-lite (staged, like hygiene's phase-1 modes)./communityskill body (judgment tier): read the issue, assess context, draft the full reply or clarifying question — every outward message is presented to the human before posting. Actionable work routes into the existing/start_dev_for_user(which already owns receipt/plan/milestone comments and the clarification gate).needs-info) plus the existinguser-facing: trueentries inPyAutoMind/active.md./wake_upsensory leg: new step in the gh-API "Everywhere" section runningpyauto-brain community scan, plus a 💬 Community digest category — mobile-safe, listed for the human, never auto-replied.bin/pyauto-braindispatch/usage/CONDUCTOR_ORDER,skills/community/{SKILL.md,community.md},skills/COMMANDS.md, PyAutoBrainAGENTS.mdtables; scaffold tests;bin/install.sh.Detailed implementation plan
Affected Repositories
Branch Survey
agents/conductors/intake/_intake.py, other session)Suggested branch:
feature/community-voice-agentWorktree root:
~/Code/PyAutoLabs-wt/community-voice-agent/Blocked by:
workspace-agent(PyAutoBrain#116) — claims PyAutoBrain and touches the same registration files (bin/pyauto-brain,AGENTS.md,skills/COMMANDS.md). Start after it ships.Implementation Steps
agents/conductors/community/AGENTS.md— opens with theTier: conductorblockquote whose first line is the analogy: "the Voice — the organism's language faculty (Broca + Wernicke): it hears the community and speaks back." Sections mirroring hygiene: Modes table (scan/triage/ default), Fundamental principles (draft-for-approval — the conductor never posts to GitHub; GitHub +active.mdare the state, the conductor owns none; stdlib/bash only), Boundaries (vs intake — community converses with an external reporter and routes; intake files prompts from the developer's raw ideas; vs start_dev_for_user — community is discovery + conversation + routing, start_dev_for_user is the dev entry it delegates to; vs wake_up — wake_up composes the scan, owns nothing here; vs health/hygiene — no verdicts, no upkeep), Capability audit (gh search/issues API, issue labels,start_dev_for_user,update_issue).agents/conductors/community/community.sh+_community.py(stdlib-only) —scan: enumerate repos fromPyAutoMind/repos.yaml(org PyAutoLabs + the three Jammy2211-owned),gh api search/issuesfor open issues where the author is not Jammy2211/bots, plus open issues whose last comment is not ours (awaiting-response detection); rank by age/waiting-time; emitCommunityDecisionwith--json.triage <ref>: fetch one issue, surface title/body/author/labels/comment-tail + a context-sufficiency checklist for the skill layer; v1-lite acceptable (deterministic surface, judgment stays in the session).bin/pyauto-brain— dispatch map entry, one-line description, usage block,CONDUCTOR_ORDER.skills/community/{SKILL.md,community.md}— the/communitydoor. Flow: scan → pick issue → triage surface → session assesses context → EITHER draft clarifying question (present to human → post →needs-infolabel) OR draft receipt+route into/start_dev_for_user→ ongoing updates via/update_issuecadence (~5 milestones bugs, 4 features). Every comment body presented for review before posting.skills/COMMANDS.md—/communityveneer row (tier-1 conductor table).PyAutoBrain/AGENTS.md— Conductors section entry + command-surface table row.skills/wake_up/wake_up.md— new step in "Everywhere (gh-API)" section: Community —bin/pyauto-brain community scan; digest gains 💬 Community category ("N users waiting on a response, oldest X days"). Update the digest card list.--jsonshape, repos.yaml enumeration, author filtering with fixture JSON; no live gh calls).bin/install.sh— run to install the/communitycommand; verify the symlink lands.Key Files
agents/conductors/hygiene/{AGENTS.md,hygiene.sh}— the birth template to mirror (commit 05abfa3, feat(hygiene): hygiene conductor — phase 1 scaffold + boundaries (#87) #88).skills/start_dev_for_user/{start_dev_for_user.md,reference.md}— the existing user-issue dev entry + comment templates the conductor delegates to (do not duplicate).skills/wake_up/wake_up.md— the sensory-leg edit (renamed from morning, refactor: rename morning skill to wake_up (composition door) #115).PyAutoMind/repos.yaml— repo enumeration source for the scan.Original Prompt
Click to expand starting prompt
PyAutoMind prompt:
draft/feature/pyautobrain/community_communication_agent_listen_and_respond.md(moves toactive/on issue creation)I need to think about how I communicate with users and people who put up github issues with requests for new features,
bugs, etc.
Currently, I would just put the GitHub link into a agent chat and go from there but we can formalism this.
First, the wake up skill should give a summary of whether other users (e.g. not me) have raised issues across
any repos so I can then rspond to them.
Do we need a dedicated brain agent for listening to and communicating with users and the community? I dont see why not,
I'm not exactly gonna go to GitHub adn do this myself. I think the agent would be incharge of routing the task,
finding the right brain agent to implement it, and giving the poster updates on whats going on. The point is this
agent knows its communicating with someone else and thus in a conversation, and should really read their github
issue and assess if what theyve provided is enough context or if it should ask for more. so it should pretty much
draft the whole response, assess the issue itself and only real on me to guide it.
This agent could be called ears? listed? but it also talks to the user, so communicate? Think about the brain
conductor organ analogy.
Intake review decisions (2026-07-16): name
/communityalias "the Voice" (description first line carries the analogy); one prompt, two legs (wake_up summary + conductor); autonomy human-required — outward messages are drafts gated on the human; anchors onstart_dev_for_user,/wake_up, the user-facing-issue update cadence; difficulty medium.