Skip to content

feat: community conductor (the Ears) — hear + answer user-filed issues#122

Merged
Jammy2211 merged 1 commit into
mainfrom
feature/community-voice-agent
Jul 16, 2026
Merged

feat: community conductor (the Ears) — hear + answer user-filed issues#122
Jammy2211 merged 1 commit into
mainfrom
feature/community-voice-agent

Conversation

@Jammy2211

Copy link
Copy Markdown
Contributor

Summary

Births the community conductor — the Ears, the organism's receptive language function (Wernicke to the Workspace Agent's Broca/Voice, #118): deterministic read-only surfaces over the community's GitHub issues, with every outward reply drafted in the /community session and gated on the human. Delivers both legs of the founding prompt: the dedicated listening/communicating agent and the /wake_up summary of what the community is waiting on. Closes #119.

API Changes

New Brain CLI verb + skill; no Python library API is touched.

  • Added pyauto-brain community (default scan) and community triage <url | owner/repo#N>, both --json.
  • Added the /community skill (tier-1 conductor door).
  • /wake_up: new community-scan step in the gh-API tier (+ 💬 Community digest category); later steps renumbered.
    See full details below.

Test Plan

  • python3 -m pytest tests/ — 75 passed (6 new hermetic community tests: stub gh, fabricated repos.yaml, no-mutation + no-write proofs)
  • Live: bin/pyauto-brain community → 7 external open issues, 5 awaiting response (ranked by waiting time, top 54d)
  • Live: community triage PyAutoLabs/PyAutoLens#531 → 4/5 context signals present, dataset pointer flagged missing, route emitted
  • bash bin/check_skill_line_counts.sh — 42 skills within the 200-line budget
  • Post-merge: run bash bin/install.sh from the canonical checkout to install /community
Full API Changes (for automation & release notes)

Added

  • pyauto-brain community [scan] [--json]CommunityScan: open issues authored by non-self humans across every PyAutoMind/repos.yaml home (org searched wholesale, non-org homes individually; bot authors filtered), awaiting-response detection (the conversation's last word is not ours; per-issue lookups capped at 30) ranked by waiting days; failed searches surface as degraded, never silently.
  • pyauto-brain community triage <url | owner/repo#N> [--json]CommunityTriage: context-sufficiency signals (code_block, traceback, version, expected_vs_actual, data_pointer), missing-signal clarifying-question seeds, comment tail, awaiting flag, /start_dev_for_user route.
  • agents/conductors/community/{AGENTS.md,community.sh,_community.py} — conductor doc (modes, principles, boundaries vs the Voice/intake/start_dev_for_user, capability audit) + stdlib-only core.
  • skills/community/{SKILL.md,community.md} — the /community door.
  • Env knobs: COMMUNITY_GH (gh binary override), COMMUNITY_SELF (self logins, default Jammy2211).

Changed Behaviour

  • skills/wake_up/wake_up.md — new "Community" step in the Everywhere (gh-API) tier + 💬 Community digest category; former steps 6–7 renumbered 7–8.
  • bin/pyauto-braincommunity in the dispatch map/help; CONDUCTOR_ORDER gains community after intake; AGENTS.md command-surface block regenerated.

Migration

  • None — additive only.

Ship gate (recorded)

Heart RED at ship time — six reasons, all unrelated to this branch (parallel-session PyAutoLens dirt, stale 2026-07-09 workspace validation, 58 stale parked scripts, tenant-firewall manifest drift ×2, install verification not run, release validation stale after the 2026-07-15 release). Human acknowledged and authorized PR-open only; merge stays human — same pattern as workspace-agent #118 earlier today.

Generated by the PyAutoLabs agent workflow.

🤖 Generated with Claude Code

…119)

Birth of the community conductor — the organism's receptive language
function: it hears the community (user-filed GitHub issues across every
repos.yaml repo) and drafts what the organism says back; the human remains
the mouth. Wernicke to the Workspace Agent's Broca/Voice (#118).

- agents/conductors/community/{AGENTS.md,community.sh,_community.py}: two
  read-only, stdlib-only modes — scan (open external issues over the
  repos.yaml homes, bot-filtered, awaiting-response detection ranked by
  waiting time) and triage <issue-ref> (context-sufficiency signals +
  clarifying-question seeds + comment tail). Never posts, labels or writes;
  COMMUNITY_GH / COMMUNITY_SELF overrides keep tests hermetic.
- bin/pyauto-brain: dispatch map, description, CONDUCTOR_ORDER; AGENTS.md
  command surface regenerated via install.sh --write-agents-surface.
- skills/community/{SKILL.md,community.md}: the /community door — the
  session drafts every outward reply for human approval; actionable work
  routes via /start_dev_for_user (which owns the comment templates).
- skills/wake_up/wake_up.md: the community sensory leg — scan step in the
  gh-API tier + 💬 Community digest category (never auto-reply).
- skills/COMMANDS.md + AGENTS.md: tier-1 registration.
- tests/test_community_conductor.py: 6 hermetic contract tests (stub gh +
  fabricated repos.yaml; proves no mutating endpoint is hit, no file writes).

Tests: 75 passed. Live-verified: scan found 5 external issues awaiting
response (54d waiting); triage on PyAutoLens#531 detected 4/5 signals.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: community conductor (the Voice) — listen + respond to user issues

1 participant