Implement initial PyAutoBrain Feature Agent - #4
Merged
Conversation
Add the Feature Agent, the growth function of PyAutoBrain: the reasoning agent that reads feature intent from PyAutoMind and decides how the organism should grow. It reasons; it never edits source — it emits a structured FeatureDecision that the existing start_dev -> ship_library/ship_workspace workflow consumes. Three modes (per the PyAutoMind feature/pyautobrain/feature.md prompt): - specific: plan a named prompt for start_dev. - selection: choose the best next feature task (not just the first), down-ranking in-flight work read from active.md / planned.md. - difficulty-constrained: select by --difficulty / --model / --budget / --ambitious / --impact. It estimates difficulty from a transparent heuristic (repos affected, size, scientific complexity, architectural risk, test burden, memory-context need), decides phasing (direct / split-into-phases with phase stubs / research-first / re-home), maps the task to library / workspace / combined workflows from the prompt's @reponame references, consults PyAutoMemory sub-wikis for scientific and architectural context (cited, never invented), and — as a society-of-agents citizen — can consult the sibling Health Agent (--check-health) rather than querying Heart directly. - agents/feature/feature.sh: entrypoint (resolves PyAutoMind/PyAutoMemory, normalises the subcommand, optional health consult). - agents/feature/_feature.py: stdlib-only, never-writes analysis core (discovery, classification, difficulty, phasing, memory routing, FeatureDecision in human + --json form). - agents/feature/AGENTS.md + MIND_TAXONOMY.md: concise agent doc and the PyAutoMind/PyAutoMemory surface audit (both <200 lines per skill guidance). - _common.sh: resolve_mind / resolve_memory directory resolvers (sibling-aware). - bin/pyauto-brain + root AGENTS.md: register and document the agent. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012VbJJGXaAsEQz7U4twT9c1
8 tasks
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
Adds the Feature Agent, the growth function of PyAutoBrain: the reasoning agent that reads feature intent from PyAutoMind and decides how the organism should grow. Implements
PyAutoMind/feature/pyautobrain/feature.md.It reasons; it never edits source. It emits a structured
FeatureDecisionthat the existing development workflow (start_dev → start_library/ship_library,start_workspace/ship_workspace) consumes. Built on the Build Agent template, so it follows the establishedagents/<name>/shape (conciseAGENTS.md+ deterministic entrypoint + a capability audit of the organs it reads).Three modes
start_dev.active.md/planned.md.--difficulty/--model/--budget/--ambitious/--impact.What it reasons about
small | medium | large | too-large, with the factor breakdown in every decision.direct/split-into-phases(emits_phase_1_design.md … _phase_4_docs.mdstubs) /research-first/ re-home when mis-filed.library | workspace | combineddecided from the prompt's@RepoNamereferences (per PyAutoMindROUTING.md); combined enforces library-first ordering so the workspace consumes the library PR's## API Changessummary.--check-health) rather than querying Heart directly.Files
agents/feature/feature.sh— entrypoint: resolves PyAutoMind/PyAutoMemory checkouts, normalises the subcommand (bare path →specific, nothing →selection), optional health consult.agents/feature/_feature.py— stdlib-only, never-writes analysis core: discovery, classification, difficulty, phasing, memory routing,FeatureDecisionin human +--jsonform.agents/feature/AGENTS.md+MIND_TAXONOMY.md— concise agent doc and the PyAutoMind/PyAutoMemory surface audit (both 116 lines, under the 200-line skill cap).agents/_common.sh— sibling-awareresolve_mind/resolve_memorydirectory resolvers.bin/pyauto-brain+ rootAGENTS.md— register and document the agent.Validation
Exercised against the 30 real
feature/**prompts in PyAutoMind:start_dev/ship_*; combined library+workspace detected with library-first orderingbash -n/py_compileclean; edge cases (unknown task → exit 5,--help,--json, CLI dispatch) verified🤖 Generated with Claude Code
Generated by Claude Code