Skip to content

chore: promote dev to main - #606

Closed
namastex888 wants to merge 77 commits into
mainfrom
dev
Closed

namastex888 wants to merge 77 commits into
mainfrom
dev

Conversation

@namastex888

@namastex888 namastex888 commented Mar 16, 2026 •

Copy link
Copy Markdown
Contributor

Rolling Promotion: dev → main

Changes since last release

PR What
#593 fix(reset): clean up all team dirs on --reset
#595 fix(lint): reduce complexity in buildClaudeCommand and launchTmuxSpawn
#596 fix(lint): resolve all remaining lint errors and complexity warnings
#597 chore(tests): remove flaky stress/load tests
#601 feat(worktree): move default worktree path out of repo
#603 fix(agent-dir): resolve agents from main repo when inside a worktree
#604 fix: session hook respects updateChannel, release skip-ci fix
#605 fix: auto-publish @next on dev merge, fix rolling PR history sync

IMPORTANT: Merge with "Create a merge commit" — NEVER squash.
Squash merging breaks history sync between dev and main.

Summary by CodeRabbit

  • New Features

    • Added Council of specialized agents for architectural decision-making and code reviews.
    • Introduced PM (Project Manager), Team Lead, and enhanced Engineer/QA agent workflows.
    • Added Brain skill for knowledge management and auto-detect installation.
    • Team status tracking (in progress, done, blocked).
  • Improvements

    • Enhanced installation with intelligent fallback handling.
    • Better GitHub Actions workflows for publishing and PR management.
    • Improved skill documentation and orchestration.
  • Chores

    • Version bump to 3.260316.14.

github-actions Bot and others added 30 commits March 14, 2026 19:52
…arn+brain

Group 1 — Orchestration Rules Rewrite:
- Rewrite ORCHESTRATION_PROMPT in smart-install.js and install.sh with current
  CLI commands (spawn, kill, stop, ls, team create/hire/fire/disband, send,
  broadcast, chat, done, status, reset)
- Add skill auto-invocation chain, team lifecycle, and rules sections
- Remove stale genie agent spawn, genie team ensure, genie agent dashboard refs
- Both files have identical orchestration content

Group 2 — Kill Onboarding + Inline References:
- Delete skills/onboarding/ directory entirely
- Inline prompt optimizer content into skills/refine/SKILL.md
- Inline design template into skills/brainstorm/SKILL.md
- Inline wish template into skills/wish/SKILL.md
- Remove all references/ file paths from SKILL.md files

Group 5 — Learn Rewrite + Brain Update:
- Rewrite skills/learn/SKILL.md: primary trigger is user correction, diagnoses
  which behavioral surface needs change (CLAUDE.md, AGENTS.md, SOUL.md, rules/,
  memory/, hooks, configs). Remove BOOTSTRAP.md ref. Connect to Claude native memory.
- Update skills/brain/SKILL.md: add brain vs memory distinction (brain=context
  graph, memory=behavioral learnings). Add auto-install: detect notesmd-cli,
  offer install from https://github.com/Yakitrak/notesmd-cli
Group 3 — Core Chain Skills:
- brainstorm: remove genie brainstorm crystallize, auto-invoke /review at
  WRS=100, suggest /council when Decisions stuck after 2+ exchanges
- wish: fuzzy gate check auto-triggers /brainstorm, step 7 declares depends-on,
  handoff auto-invokes /review instead of suggesting /work
- work: clarify as implementor skill via genie work dispatch, add local /review
  per group, genie send signaling, leader uses genie done (not worker),
  remove "no state management" confusion
- review: add SHIP next-steps per context (plan→wish/work, execution→PR,
  PR→merge), auto-invoke /fix on FIX-FIRST, /trace for unclear root cause

Group 4 — Support Skills:
- council: add auto-invocation triggers (review arch decisions, brainstorm
  stuck decisions), document genie team hire council, add 2min timeout for
  full spawn, clarify lightweight=simulate vs full spawn=real agents
- trace: add genie send for reporting findings, clarify spawned agent IS
  the tracer, /review can invoke /trace
- report: document agent-browser as genie dependency, add wish criteria
  linking during QA, add QA failure auto-invocation chain
- docs: add doc types (README, CLAUDE.md, API, architecture, JSDoc),
  CLAUDE.md as first-class surface, post-work suggestion
- refine: verified inlined content, no remaining references/ paths

Group 6 — Dream Lifecycle:
- Phase 1: use genie work dispatch per group (state tracking for free),
  genie status/done/reset for monitoring
- Phase 2: leader creates PR, reads bot comments critically, /fix valid
  issues, CI green required (poll, don't sleep)
- Phase 3: merge to dev, spawn tester, QA loop until all criteria proven,
  each fix = new PR to dev
- Phase 4: DREAM-REPORT.md with per-wish QA status
- Remove Status: SHIPPED and sleep 5 references
- Add full team lifecycle: create→execute→review→merge→QA→disband
- Change genie agent history/read/answer to genie history/read/answer
  (top-level commands, not under agent namespace) in both install.sh
  and smart-install.js
- Fix escaped backticks in wish SKILL.md template (remove backslashes)
- Add --repo <path> to genie team create in both orchestration prompts
  (--repo is required)
fix(skills): refresh all skills + orchestration rules rewrite
- Add "leader" built-in role with full orchestration system prompt
- Add --wish <slug> flag to "genie team create" for auto-spawning leaders
- Add team status tracking (in_progress/done/blocked) with setTeamStatus()
- Add "genie team done" and "genie team blocked" CLI commands
- Add autoMergeDev config option to GenieConfigSchema
- Update "genie team ls" to show team status column
- Add file lock to setTeamStatus to prevent concurrent read-modify-write races
- Replace require("node:path").resolve with ESM import in team.ts
- Validate wish file exists before createTeam to avoid orphaned teams
- Add --team flag to all genie team commands in leader prompt since GENIE_TEAM won't be set
Co-Authored-By: Paperclip <noreply@paperclip.ing>
feat: task leader role — autonomous wish lifecycle orchestration
…rompts

Inline --append-system-prompt and --system-prompt flags broke when passed
through tmux send-keys with multi-line prompts containing code blocks.
All system prompts are now written to temp files at /tmp/genie-prompts/
and passed via --append-system-prompt-file or --system-prompt-file.

When both systemPrompt and systemPromptFile are set, they are merged into
a single temp file. Extra --append-system-prompt-file args are also merged.

Closes #568
fix: eliminate inline system prompts — all prompts via temp files (#568)
- Add initialPrompt field to SpawnParams/SpawnOptions, appended as
  Claude Code positional [prompt] arg in buildClaudeCommand()
- spawnLeaderWithWish() now passes a kickoff prompt so the leader
  begins working immediately — no manual genie send needed
- Audit and update orchestration rules in smart-install.js and
  install.sh: add team done/blocked, dir commands, update --next/
  --stable, task leader workflow, autoMergeDev config
- Both install scripts now have identical orchestration content
feat: auto-kickoff leader on wish spawn + orchestration rules audit
Group 1 — Orchestration Rules:
- Create plugins/genie/rules/genie-orchestration.md (~15 lines)
- Remove hardcoded ORCHESTRATION_PROMPT from smart-install.js
- Update install.sh to copy from package file with fallback
- Both installers log where the rule was created
- Add removal of ~/.claude/rules/genie-orchestration.md to uninstall

Group 2 — Agent Consolidation:
- Rename implementor → engineer
- Merge spec-reviewer + quality-reviewer → reviewer (SHIP/FIX-FIRST)
- Merge tests → qa (writes tests + validates on dev)
- Delete old agent files
- Update builtin-agents.ts, skills, and all references

Group 4 — Session Fixes:
- getAgentsSystemPrompt() → getAgentsFilePath() (returns path not content)
- team-lead-command.ts: accept systemPromptFile, delete PROMPTS_DIR copy
- --agent-name uses basename(cwd) instead of hardcoded "team-lead"
- launchTmuxSpawn: use send-keys for first agent in team window
…gistry

Group 3 of fix-orchestration-rules wish:

- Convert every agent .md into folder/<name>/AGENTS.md with symlinks
- Create team-lead/ with AGENTS.md + SOUL.md + HEARTBEAT.md
- Create pm/ with AGENTS.md + SOUL.md + HEARTBEAT.md
- Add SOUL.md for all council members with real-person philosophy
- Add @SOUL.md import to council AGENTS.md files
- Rewrite builtin-agents.ts: scan plugins/genie/agents/*/ for discovery,
  parse CC frontmatter, no inline systemPrompt strings
- Add resolveBuiltinAgentPath(name) for file-based resolution
- Update agents.ts: use agentPath as systemPromptFile, no inline prompts
- Update tests for new folder structure and naming (council-- double dash)
session.ts hardcoded 'team-lead' as the agent name in ensureNativeTeamForLeader,
findLastSessionId calls, and console.log messages. Since team-lead-command.ts
derives agent name from basename(cwd), session.ts must match to avoid session
resume mismatches and incorrect native team registration.

Also simplify install.sh orchestration rules lookup to use the already-resolved
PKG_DIR instead of scanning hardcoded candidate paths.
feat: orchestration rules overhaul + agent folder structure + session fixes
import.meta.dir returns CWD in compiled bundles, not the module's
directory. Use the actual script path (process.argv[1]) resolved via
realpathSync to find the package root and discover agent folders.
fix: builtin agent folder scanner — resolve package root via process.argv[1] (#576)
github-actions Bot and others added 25 commits March 16, 2026 04:01
fix: set GENIE_TEAM env var on agent spawn
fix: kickoff message — genie work spawns automatically
Agent directory now defaults to project scope (<repo>/.genie/agents.json)
with fallback to global (~/.genie/agent-directory.json) then built-ins.

- add/rm/edit default to project scope, accept { global: true } option
- resolve() checks project → global → built-in roles → built-in council
- ls() returns entries from all scopes with scope label
- dir CLI commands accept --global flag
- dir ls shows SCOPE column

Closes #578
feat: project-scoped agent directory — multiple engineers across projects
fix(update): delete bun lockfile before install
#593)

* fix(reset): clean up all team dirs on --reset, not just current window

When `genie --reset` was called, handleReset() killed the entire tmux
session but only deleted one native team directory (the current
windowName). Any other windows in the session left their team configs
behind in ~/.claude/teams/.

Fix: collect all window names via listWindows() before killing the
session, then delete each window's team directory.

Closes #545

* fix: use session ID instead of name in tmux calls to prevent injection

Gemini review flagged potential command injection when sessionName is
passed to tmux.listWindows/killSession. If a session name contains
single quotes it could break shell quoting in executeTmux.

Fix: use existing.id (system-assigned identifier) instead of
sessionName for the tmux calls. Session name still used for the log
message (cosmetic only).

---------

Co-authored-by: Felipe Rosa <felipe@namastex.ai>
…chTmuxSpawn (#595)

Extract helper functions to bring both functions under the biome
complexity limit of 15:

- buildClaudeCommand (27→~12): extract appendSystemPromptFlags()
- launchTmuxSpawn (22→~8): extract createTmuxPane() and applySpawnLayout()

Closes #594

Co-authored-by: Test User <test@test.com>
…596)

- Fix JSON formatting in package.json, openclaw.plugin.json, plugin.json
- Fix noAssignInExpressions in dispatch.ts (refactor while loop)
- Reduce complexity in performUninstall (21→≤15): extract tryRemoveStep()
- Reduce complexity in autoSpawn (25→≤15): extract buildSearchNames(), buildSpawnArgs()
- Reduce complexity in executeBlockingChain (18→≤15): extract runHandler()
- Reduce complexity in syncPlugin (16→≤15): extract updatePluginRegistry()
- Reduce complexity in chat action (17→≤15): extract resolveTeamName()

Biome now reports zero errors and zero warnings.

Co-authored-by: Test User <test@test.com>
Delete scale.test.ts and file-lock-concurrency.test.ts — these are
environment-dependent stress tests that cause CI failures due to
shared /tmp state and concurrent file lock race conditions. They
belong in a separate CI job, not the main test suite.

Co-authored-by: Test User <test@test.com>
* feat(worktree): move default worktree path to ~/.genie/worktrees/<project>/

Worktrees currently default to <repo>/.worktrees/ which causes accidental
git commits and bloated npm publishes. Change the default to
~/.genie/worktrees/<project-name>/ when no explicit worktreeBase is set.

- Make worktreeBase optional in config schema (undefined = new default)
- Update getWorktreeBase() to derive project name from basename(repoPath)
- Update setup wizard to show new default path

* feat(worktree): add auto-prune, fix gitignore, remove dead code

- Add pruneStaleWorktrees() to clean up team configs for non-existent
  worktree paths and run git worktree prune
- Call pruneStaleWorktrees() from disbandTeam() after cleanup
- Update .gitignore: add .worktrees/, remove dead .genie/worktrees/
- Untrack committed .worktrees/ directory from git
- Delete dead worktree-manager.ts and its test (unused legacy code)

---------

Co-authored-by: Test User <test@test.com>
Remove files that should never have been tracked:
- .worktrees/ — Claude Code worktree metadata
- .genie/agents.json — local agent directory
- .genie/teams/ — local team configs
- .genie/brainstorms/ — local brainstorm drafts
- .genie/wishes/ — local wish plans

These are local runtime state, not part of the published package.
Files remain on disk (git rm --cached), only removed from tracking.

Co-authored-by: Test User <test@test.com>
…603)

Worktrees don't have .genie/agents.json (it's gitignored), so agent
resolution fails for project-scoped agents. Fix: detect worktree via
git rev-parse --git-common-dir and fall back to the main repo's
agents.json when the worktree's doesn't contain the requested agent.

Closes #600

Co-authored-by: Test User <test@test.com>
- smart-install.js: read updateChannel from ~/.genie/config.json,
  skip CLI reinstall when channel is 'next'
- release.yml: use startsWith instead of contains for [skip ci]
- remove hardcoded worktreeBase from createDefaultConfig()

Co-authored-by: Test User <test@test.com>
- ci.yml: add publish-next job that runs on dev push after quality gate
  passes — publishes to npm @next automatically
- rolling-pr.yml: update PR body to warn against squash merge — squash
  breaks dev/main history sync causing duplicate diffs on every PR

Co-authored-by: Test User <test@test.com>
@coderabbitai

coderabbitai Bot commented Mar 16, 2026 •

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 1a82622d-854c-4d06-89ab-ab50aa64fa2a

📥 Commits

Reviewing files that changed from the base of the PR and between c863735 and 77bf4ed.

⛔ Files ignored due to path filters (3)
  • .claude/commands/level-up.md is excluded by !.claude/**
  • CLAUDE.md is excluded by !*.md
  • plugins/genie/scripts/smart-install.js is excluded by !plugins/genie/scripts/**
📒 Files selected for processing (131)
  • .claude-plugin/marketplace.json
  • .genie/brainstorm.md
  • .genie/brainstorms/agent-directory/DESIGN.md
  • .genie/brainstorms/agent-directory/DRAFT.md
  • .genie/brainstorms/deps-bump-readme-rewrite/DESIGN.md
  • .genie/brainstorms/deps-bump-readme-rewrite/DRAFT.md
  • .genie/brainstorms/genie-default-command/DESIGN.md
  • .genie/brainstorms/genie-default-command/DRAFT.md
  • .genie/brainstorms/prompt-loading-arch/DESIGN.md
  • .genie/brainstorms/prompt-loading-arch/DRAFT.md
  • .genie/brainstorms/report-skill-plugin-rename/DESIGN.md
  • .genie/brainstorms/report-skill-plugin-rename/DRAFT.md
  • .genie/wishes/deps-bump-readme-rewrite/WISH.md
  • .genie/wishes/fix-onboarding-prod-bugs/WISH.md
  • .genie/wishes/genie-default-command/WISH.md
  • .genie/wishes/genie-v2-framework-redesign/WISH.md
  • .genie/wishes/report-skill-plugin-rename/WISH.md
  • .genie/wishes/resolve-dev-desync/WISH.md
  • .genie/wishes/unify-install-kill-fragmentation/WISH.md
  • .github/workflows/ci.yml
  • .github/workflows/release.yml
  • .github/workflows/rolling-pr.yml
  • .gitignore
  • .worktrees/.metadata.json
  • .worktrees/feat-genie-cli-automation
  • .worktrees/workflow-rebrand
  • install.sh
  • openclaw.plugin.json
  • package.json
  • plugins/genie/.claude-plugin/plugin.json
  • plugins/genie/agents/council--architect.md
  • plugins/genie/agents/council--architect/AGENTS.md
  • plugins/genie/agents/council--architect/SOUL.md
  • plugins/genie/agents/council--benchmarker.md
  • plugins/genie/agents/council--benchmarker/AGENTS.md
  • plugins/genie/agents/council--benchmarker/SOUL.md
  • plugins/genie/agents/council--deployer.md
  • plugins/genie/agents/council--deployer/AGENTS.md
  • plugins/genie/agents/council--deployer/SOUL.md
  • plugins/genie/agents/council--ergonomist.md
  • plugins/genie/agents/council--ergonomist/AGENTS.md
  • plugins/genie/agents/council--ergonomist/SOUL.md
  • plugins/genie/agents/council--measurer.md
  • plugins/genie/agents/council--measurer/AGENTS.md
  • plugins/genie/agents/council--measurer/SOUL.md
  • plugins/genie/agents/council--operator.md
  • plugins/genie/agents/council--operator/AGENTS.md
  • plugins/genie/agents/council--operator/SOUL.md
  • plugins/genie/agents/council--questioner.md
  • plugins/genie/agents/council--questioner/AGENTS.md
  • plugins/genie/agents/council--questioner/SOUL.md
  • plugins/genie/agents/council--sentinel.md
  • plugins/genie/agents/council--sentinel/AGENTS.md
  • plugins/genie/agents/council--sentinel/SOUL.md
  • plugins/genie/agents/council--simplifier.md
  • plugins/genie/agents/council--simplifier/AGENTS.md
  • plugins/genie/agents/council--simplifier/SOUL.md
  • plugins/genie/agents/council--tracer.md
  • plugins/genie/agents/council--tracer/AGENTS.md
  • plugins/genie/agents/council--tracer/SOUL.md
  • plugins/genie/agents/council.md
  • plugins/genie/agents/council/AGENTS.md
  • plugins/genie/agents/council/SOUL.md
  • plugins/genie/agents/docs/AGENTS.md
  • plugins/genie/agents/engineer.md
  • plugins/genie/agents/engineer/AGENTS.md
  • plugins/genie/agents/fix/AGENTS.md
  • plugins/genie/agents/learn/AGENTS.md
  • plugins/genie/agents/pm.md
  • plugins/genie/agents/pm/AGENTS.md
  • plugins/genie/agents/pm/HEARTBEAT.md
  • plugins/genie/agents/pm/SOUL.md
  • plugins/genie/agents/qa.md
  • plugins/genie/agents/qa/AGENTS.md
  • plugins/genie/agents/quality-reviewer.md
  • plugins/genie/agents/refactor/AGENTS.md
  • plugins/genie/agents/reviewer.md
  • plugins/genie/agents/reviewer/AGENTS.md
  • plugins/genie/agents/spec-reviewer.md
  • plugins/genie/agents/team-lead.md
  • plugins/genie/agents/team-lead/AGENTS.md
  • plugins/genie/agents/team-lead/HEARTBEAT.md
  • plugins/genie/agents/team-lead/SOUL.md
  • plugins/genie/agents/tests.md
  • plugins/genie/agents/trace/AGENTS.md
  • plugins/genie/package.json
  • plugins/genie/references/wish-template.md
  • plugins/genie/rules/genie-orchestration.md
  • skills/brain/SKILL.md
  • skills/brainstorm/SKILL.md
  • skills/council/SKILL.md
  • skills/docs/SKILL.md
  • skills/dream/SKILL.md
  • skills/learn/SKILL.md
  • skills/onboarding/SKILL.md
  • skills/refine/SKILL.md
  • skills/report/SKILL.md
  • skills/review/SKILL.md
  • skills/trace/SKILL.md
  • skills/wish/SKILL.md
  • skills/work/SKILL.md
  • src/genie-commands/__tests__/session.test.ts
  • src/genie-commands/session.ts
  • src/genie-commands/setup.ts
  • src/genie-commands/uninstall.ts
  • src/genie-commands/update.ts
  • src/genie.ts
  • src/hooks/handlers/auto-spawn.ts
  • src/hooks/index.ts
  • src/lib/__tests__/mailbox.test.ts
  • src/lib/agent-directory.test.ts
  • src/lib/agent-directory.ts
  • src/lib/agent-registry.ts
  • src/lib/builtin-agents.test.ts
  • src/lib/builtin-agents.ts
  • src/lib/provider-adapters.test.ts
  • src/lib/provider-adapters.ts
  • src/lib/team-auto-spawn.ts
  • src/lib/team-lead-command.ts
  • src/lib/team-manager.test.ts
  • src/lib/team-manager.ts
  • src/lib/worktree-manager.test.ts
  • src/lib/worktree-manager.ts
  • src/term-commands/agents.ts
  • src/term-commands/dir.ts
  • src/term-commands/dispatch.ts
  • src/term-commands/msg.test.ts
  • src/term-commands/msg.ts
  • src/term-commands/team.test.ts
  • src/term-commands/team.ts
  • src/types/genie-config.ts

📝 Walkthrough

Walkthrough

This PR updates the plugin version from 3.260314.8 to 3.260316.14 and performs a significant architectural refactoring of the Genie agent system. Key changes include migrating from inline system prompts to file-path-based agent identity resolution, introducing project/global directory scoping for agent registration, implementing dynamic agent discovery from AGENTS.md frontmatter, adding team status lifecycle tracking (in_progress/done/blocked), and documenting comprehensive agent specifications for new roles (engineer, team-lead, PM, reviewer) and council member profiles.

Changes

Cohort / File(s) Summary
Version & Manifest Updates
.claude-plugin/marketplace.json, openclaw.plugin.json, plugins/genie/.claude-plugin/plugin.json, package.json, plugins/genie/package.json
Version bumped from 3.260314.8 to 3.260316.14 across all plugin and package manifest files.
Design & Brainstorm Document Deletions
.genie/brainstorm.md, .genie/brainstorms/agent-directory/*, .genie/brainstorms/deps-bump-readme-rewrite/*, .genie/brainstorms/genie-default-command/*, .genie/brainstorms/prompt-loading-arch/*, .genie/brainstorms/report-skill-plugin-rename/*
Removed comprehensive design and draft documents describing multi-agent spawn system, CLI v2 redesign, dependency/README rewrite, installation unification, and plugin renaming initiatives; added two new brainstorm entries (task-leader-architecture, skill-refresh).
Wish Documentation Deletions
.genie/wishes/deps-bump-readme-rewrite/WISH.md, .genie/wishes/fix-onboarding-prod-bugs/WISH.md, .genie/wishes/genie-default-command/WISH.md, .genie/wishes/genie-v2-framework-redesign/WISH.md, .genie/wishes/report-skill-plugin-rename/WISH.md, .genie/wishes/resolve-dev-desync/WISH.md, .genie/wishes/unify-install-kill-fragmentation/WISH.md
Removed detailed execution/delivery plans for prior architectural initiatives and onboarding fixes.
Workflow & Installation Changes
.github/workflows/ci.yml, .github/workflows/release.yml, .github/workflows/rolling-pr.yml, install.sh
Added new publish-next job for dev branch deployments; updated release skip condition from contains to startsWith; added merge-commit guidance to rolling PRs; refactored install.sh to load orchestration rules from file with fallback instead of inline generation.
Repository Configuration
.gitignore, .worktrees/.metadata.json, .worktrees/feat-genie-cli-automation, .worktrees/workflow-rebrand
Updated worktree ignore paths and added local Genie state ignores (agents.json, teams/, brainstorms/, wishes/, state.json); removed obsolete worktree metadata and submodule references.
Agent Specifications - Council & Roles
plugins/genie/agents/council*.md, plugins/genie/agents/council/AGENTS.md, plugins/genie/agents/council/SOUL.md, plugins/genie/agents/engineer.md, plugins/genie/agents/engineer/AGENTS.md
Added comprehensive documentation for ten council members (architect, benchmarker, deployer, ergonomist, measurer, operator, questioner, sentinel, simplifier, tracer) with AGENTS.md and SOUL.md files defining roles, modes, analysis frameworks, and voting schemas; renamed implementor to engineer.
Agent Specifications - Operational Roles
plugins/genie/agents/pm.md, plugins/genie/agents/pm/AGENTS.md, plugins/genie/agents/pm/HEARTBEAT.md, plugins/genie/agents/pm/SOUL.md, plugins/genie/agents/team-lead.md, plugins/genie/agents/team-lead/AGENTS.md, plugins/genie/agents/team-lead/HEARTBEAT.md, plugins/genie/agents/team-lead/SOUL.md
Introduced Project Manager and Team Lead agent specifications with lifecycle workflows, heartbeat loops, delegation models, and soul manifestos.
Agent Specifications - Review & Execution
plugins/genie/agents/reviewer.md, plugins/genie/agents/reviewer/AGENTS.md, plugins/genie/agents/qa.md, plugins/genie/agents/qa/AGENTS.md, plugins/genie/agents/trace/AGENTS.md, plugins/genie/agents/docs/AGENTS.md, plugins/genie/agents/fix/AGENTS.md, plugins/genie/agents/learn/AGENTS.md, plugins/genie/agents/refactor/AGENTS.md
Added specifications for unified reviewer (combining spec & quality review), QA gate, trace investigator, docs auditor, fix specialist, behavioral learning, and refactor agents; removed separate spec-reviewer and quality-reviewer.
Agent Specifications - Removed
plugins/genie/agents/quality-reviewer.md, plugins/genie/agents/spec-reviewer.md, plugins/genie/agents/tests.md
Consolidated quality and spec review into single reviewer agent; removed standalone tests and quality-reviewer agents.
Orchestration Rules & References
plugins/genie/rules/genie-orchestration.md, plugins/genie/references/wish-template.md
Added comprehensive orchestration command reference documenting SendMessage, genie CLI commands, and tool restrictions; updated wish template with new QA Criteria section.
Skill Documentation Updates
skills/*/SKILL.md (brain, brainstorm, council, docs, dream, learn, onboarding, refine, report, review, trace, wish, work)
Extensive documentation updates to reflect new orchestration flows, auto-invocation triggers, agent renaming (implementor→engineer), file-based prompts, QA loops, behavioral correction, and team lifecycle stages; removed onboarding skill entirely.
Session & Team Management
src/genie-commands/session.ts, src/genie-commands/session.test.ts, src/genie-commands/team.ts, src/genie-commands/team.test.ts
Changed getAgentsSystemPrompt → getAgentsFilePath (returns path instead of content); added session registry integration; refactored team creation with --wish option; added team status lifecycle (done/blocked commands); dynamic agent naming from folder basename.
Agent Directory & Scoping
src/lib/agent-directory.ts, src/lib/agent-directory.test.ts
Introduced project/global/built-in scope layering with dual-storage (agents.json vs agent-directory.json); added project root detection; extended API with ScopeOptions; updated resolution to check project→main→global→built-ins.
Built-in Agent Discovery
src/lib/builtin-agents.ts, src/lib/builtin-agents.test.ts
Replaced static BUILTIN_ROLES/BUILTIN_COUNCIL_MEMBERS with dynamic filesystem scanning; added AGENTS.md frontmatter parsing; new exports: ALL_BUILTINS, resolveBuiltinAgentPath(), listCouncilNames().
Provider Adapters & Prompts
src/lib/provider-adapters.ts, src/lib/provider-adapters.test.ts, src/lib/team-auto-spawn.ts, src/lib/team-lead-command.ts
Migrated from inline systemPrompt to file-based systemPromptFile; added appendSystemPromptFlags helper for merging prompts into temp files; added initialPrompt support; updated BuildTeamLeadCommandOptions signature.
Team Manager & Status
src/lib/team-manager.ts, src/lib/team-manager.test.ts
Added TeamStatus type and status field to TeamConfig; introduced setTeamStatus() API with file-locking; added pruneStaleWorktrees() for cleanup; status initialized to in_progress on team creation.
Removed Worktree Manager
src/lib/worktree-manager.ts, src/lib/worktree-manager.test.ts
Deleted entire worktree management module and tests (WorktreeInfo, GitWorktreeManager, getWorktreeManager).
Agent Spawn Logic
src/term-commands/agents.ts
Replaced systemPrompt handling with identityPath (resolved via resolveBuiltinAgentPath or directory.loadIdentity); refactored tmux pane creation into createTmuxPane/applySpawnLayout helpers; added spawnIntoCurrentWindow context flag.
Directory & Messaging CLI
src/term-commands/dir.ts, src/term-commands/msg.ts
Extended dir commands with --global flag for scope-aware operations; added scope column to listings; refactored msg command with new resolveTeamName helper.
Setup & Update Commands
src/genie-commands/setup.ts, src/genie-commands/update.ts, src/genie-commands/uninstall.ts
Updated prompts for file-based system prompts; refactored uninstall to handle orchestration rules removal; modified plugin registry update logic; adjusted bun update flags.
Hook Handlers
src/hooks/handlers/auto-spawn.ts, src/hooks/index.ts
Refactored auto-spawn with buildSearchNames/buildSpawnArgs helpers; simplified validation logic; added early-exit for live panes; added runHandler and executeNonBlockingHandlers utilities.
Dispatch & Misc CLI
src/term-commands/dispatch.ts, src/genie.ts
Minor while-loop refactor in parseWishGroups; updated genie.ts to use getAgentsFilePath.
Configuration Schema
src/types/genie-config.ts
Made worktreeBase optional (removed default); added autoMergeDev boolean flag (default false).
Testing Infrastructure
src/lib/mailbox.test.ts
Added comprehensive mailbox module tests covering send, inbox retrieval, delivery marking, body truncation, concurrency, and failure modes.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch dev

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly refines the Genie CLI's agent orchestration and user guidance. It introduces a comprehensive level-up feature for skill assessment, modernizes the agent definition and discovery process, and streamlines team-based development workflows. These changes aim to provide a more intuitive, powerful, and maintainable platform for human-AI collaboration.

Highlights

  • New Level-Up Command: Introduced a new /level-up command that assesses a user's Claude Code mastery level (0-10) and provides a personalized roadmap to enhance their skills.
  • Enhanced Agent Directory and Built-in Agent Definitions: Overhauled the agent directory to support both project-level and global agent definitions, with project entries taking precedence. Built-in agents are now dynamically discovered from AGENTS.md files within the plugin directory, parsing metadata from YAML frontmatter, replacing hardcoded system prompts.
  • Improved Team Management Workflows: Expanded team management with new team done and team blocked commands for status updates. The team create command now supports an optional --wish flag to automatically spawn a task leader with a wish context, copying the wish into the worktree and hiring standard team members.
  • Flexible Worktree Paths and Session Reset: The default worktree base path now intelligently defaults to ~/.genie/worktrees/<project-name>/ if not explicitly configured. Additionally, genie session --reset now ensures cleanup of all associated team directories within a session.
  • Agent Role Renaming and Skill Updates: The implementor agent role has been renamed to engineer for clarity. Numerous skills (brain, brainstorm, council, dream, docs, learn, refine, report, review, trace, wish, work) have been updated to align with the new agent architecture, team management, and workflow enhancements.
Changelog
  • .claude-plugin/marketplace.json
    • Updated the version of the 'genie' plugin.
  • .claude/commands/level-up.md
    • Added a new command file for the 'level-up' feature, detailing its assessment phases, roadmap, and dashboard generation.
  • .genie/brainstorm.md
    • Added new entries for 'task-leader-architecture' and 'skill-refresh' under the 'Poured' section.
  • .gitignore
    • Updated ignored paths to include new local genie state files (.genie/agents.json, .genie/teams/, .genie/brainstorms/, .genie/wishes/) and legacy worktree directories (.worktrees/).
  • CLAUDE.md
    • Added a new documentation file outlining Genie CLI commands, architecture, state file locations, environment variables, build, testing, code style, gotchas, and PR review rules.
  • install.sh
    • Modified the orchestration prompt injection logic to copy rules from the plugin directory instead of embedding them directly.
  • openclaw.plugin.json
    • Updated the version of the 'Genie' OpenClaw plugin.
  • package.json
    • Updated the package version for @automagik/genie.
  • plugins/genie/.claude-plugin/plugin.json
    • Updated the plugin version for 'genie'.
  • plugins/genie/agents/council--architect.md
    • Added a reference to @SOUL.md.
  • plugins/genie/agents/council--architect/AGENTS.md
    • Added a new agent definition file for the 'architect' council member.
  • plugins/genie/agents/council--architect/SOUL.md
    • Added a new soul definition file for the 'architect' council member.
  • plugins/genie/agents/council--benchmarker.md
    • Added a reference to @SOUL.md.
  • plugins/genie/agents/council--benchmarker/AGENTS.md
    • Added a new agent definition file for the 'benchmarker' council member.
  • plugins/genie/agents/council--benchmarker/SOUL.md
    • Added a new soul definition file for the 'benchmarker' council member.
  • plugins/genie/agents/council--deployer.md
    • Added a reference to @SOUL.md.
  • plugins/genie/agents/council--deployer/AGENTS.md
    • Added a new agent definition file for the 'deployer' council member.
  • plugins/genie/agents/council--deployer/SOUL.md
    • Added a new soul definition file for the 'deployer' council member.
  • plugins/genie/agents/council--ergonomist.md
    • Added a reference to @SOUL.md.
  • plugins/genie/agents/council--ergonomist/AGENTS.md
    • Added a new agent definition file for the 'ergonomist' council member.
  • plugins/genie/agents/council--ergonomist/SOUL.md
    • Added a new soul definition file for the 'ergonomist' council member.
  • plugins/genie/agents/council--measurer.md
    • Added a reference to @SOUL.md.
  • plugins/genie/agents/council--measurer/AGENTS.md
    • Added a new agent definition file for the 'measurer' council member.
  • plugins/genie/agents/council--measurer/SOUL.md
    • Added a new soul definition file for the 'measurer' council member.
  • plugins/genie/agents/council--operator.md
    • Added a reference to @SOUL.md.
  • plugins/genie/agents/council--operator/AGENTS.md
    • Added a new agent definition file for the 'operator' council member.
  • plugins/genie/agents/council--operator/SOUL.md
    • Added a new soul definition file for the 'operator' council member.
  • plugins/genie/agents/council--questioner.md
    • Added a reference to @SOUL.md.
  • plugins/genie/agents/council--questioner/AGENTS.md
    • Added a new agent definition file for the 'questioner' council member.
  • plugins/genie/agents/council--questioner/SOUL.md
    • Added a new soul definition file for the 'questioner' council member.
  • plugins/genie/agents/council--sentinel.md
    • Added a reference to @SOUL.md.
  • plugins/genie/agents/council--sentinel/AGENTS.md
    • Added a new agent definition file for the 'sentinel' council member.
  • plugins/genie/agents/council--sentinel/SOUL.md
    • Added a new soul definition file for the 'sentinel' council member.
  • plugins/genie/agents/council--simplifier.md
    • Added a reference to @SOUL.md.
  • plugins/genie/agents/council--simplifier/AGENTS.md
    • Added a new agent definition file for the 'simplifier' council member.
  • plugins/genie/agents/council--simplifier/SOUL.md
    • Added a new soul definition file for the 'simplifier' council member.
  • plugins/genie/agents/council--tracer.md
    • Added a reference to @SOUL.md.
  • plugins/genie/agents/council--tracer/AGENTS.md
    • Added a new agent definition file for the 'tracer' council member.
  • plugins/genie/agents/council--tracer/SOUL.md
    • Added a new soul definition file for the 'tracer' council member.
  • plugins/genie/agents/council.md
    • Added a reference to @SOUL.md.
  • plugins/genie/agents/council/AGENTS.md
    • Added a new agent definition file for the 'council' agent.
  • plugins/genie/agents/council/SOUL.md
    • Added a new soul definition file for the 'council' agent.
  • plugins/genie/agents/docs/AGENTS.md
    • Added a new agent definition file for the 'docs' agent.
  • plugins/genie/agents/engineer.md
    • Renamed the agent definition file from implementor.md to engineer.md and updated its internal name.
  • plugins/genie/agents/engineer/AGENTS.md
    • Added a new agent definition file for the 'engineer' agent.
  • plugins/genie/agents/fix/AGENTS.md
    • Added a new agent definition file for the 'fix' agent.
  • plugins/genie/agents/learn/AGENTS.md
    • Added a new agent definition file for the 'learn' agent.
  • plugins/genie/agents/pm.md
    • Added a new agent definition file for the 'pm' (Project Manager) agent.
  • plugins/genie/agents/pm/AGENTS.md
    • Added a new agent definition file for the 'pm' (Project Manager) agent.
  • plugins/genie/agents/pm/HEARTBEAT.md
    • Added a new heartbeat definition file for the 'pm' agent.
  • plugins/genie/agents/pm/SOUL.md
    • Added a new soul definition file for the 'pm' agent.
  • plugins/genie/agents/qa.md
    • Added a new agent definition file for the 'qa' agent.
  • plugins/genie/agents/qa/AGENTS.md
    • Added a new agent definition file for the 'qa' agent.
  • plugins/genie/agents/refactor/AGENTS.md
    • Added a new agent definition file for the 'refactor' agent.
  • plugins/genie/agents/reviewer.md
    • Added a new agent definition file for the 'reviewer' agent.
  • plugins/genie/agents/reviewer/AGENTS.md
    • Added a new agent definition file for the 'reviewer' agent.
  • plugins/genie/agents/team-lead.md
    • Added a new agent definition file for the 'team-lead' agent.
  • plugins/genie/agents/team-lead/AGENTS.md
    • Added a new agent definition file for the 'team-lead' agent.
  • plugins/genie/agents/team-lead/HEARTBEAT.md
    • Added a new heartbeat definition file for the 'team-lead' agent.
  • plugins/genie/agents/team-lead/SOUL.md
    • Added a new soul definition file for the 'team-lead' agent.
  • plugins/genie/agents/trace/AGENTS.md
    • Added a new agent definition file for the 'trace' agent.
  • plugins/genie/package.json
    • Updated the package version for 'genie-plugin'.
  • plugins/genie/references/wish-template.md
    • Added a 'QA Criteria' section and updated the 'Review Results' note.
  • plugins/genie/rules/genie-orchestration.md
    • Added a new file defining Genie CLI agent orchestration rules for communication and tool restrictions.
  • plugins/genie/scripts/smart-install.js
    • Refactored orchestration prompt injection, added update channel check, and removed worktreeBase from default config.
  • skills/brain/SKILL.md
    • Added a 'Brain vs Memory' section to clarify usage and updated installation instructions for notesmd-cli.
  • skills/brainstorm/SKILL.md
    • Updated the crystallize flow to auto-invoke /review, and added 'Stuck Decisions' and 'Design Template' sections.
  • skills/council/SKILL.md
    • Added auto-invocation triggers, clarified lightweight mode, and provided setup instructions for full spawn mode.
  • skills/docs/SKILL.md
    • Added new documentation surfaces and updated the flow to emphasize CLAUDE.md accuracy.
  • skills/dream/SKILL.md
    • Updated the description, flow, team lifecycle, worker contract, and rules to incorporate a QA loop and genie work dispatch.
  • skills/learn/SKILL.md
    • Renamed the skill to 'Behavioral Correction', updated its description, use cases, flow, and added a 'Claude Native Memory Connection' section.
  • skills/refine/SKILL.md
    • Updated the flow to directly use the 'Prompt Optimizer System Prompt' for subagent spawning.
  • skills/report/SKILL.md
    • Added dependencies, integrated QA loop, and defined the auto-invocation chain for QA failures.
  • skills/review/SKILL.md
    • Updated verdict next steps, added auto-invocation on FIX-FIRST, and clarified handling of unclear root causes.
  • skills/trace/SKILL.md
    • Updated when to use, flow, and report format to reflect integration with /review and genie send.
  • skills/wish/SKILL.md
    • Updated the gate check and handoff logic, and added a 'Wish Template' section.
  • skills/work/SKILL.md
    • Updated the skill description, local review process, signal completion, and state management.
  • src/genie-commands/tests/session.test.ts
    • Updated tests for buildClaudeCommand and getAgentsFilePath to reflect changes in agent naming and prompt file handling.
  • src/genie-commands/session.ts
    • Renamed getAgentsSystemPrompt to getAgentsFilePath, updated buildClaudeCommand to use file paths, changed GENIE_AGENT_NAME to use the folder name, and added registerSessionInRegistry.
  • src/genie-commands/setup.ts
    • Updated the default behavior for worktreeBase and clarified prompt mode descriptions.
  • src/genie-commands/uninstall.ts
    • Added logic to remove orchestration rules and improved the tryRemoveStep utility for clearer uninstall feedback.
  • src/genie-commands/update.ts
    • Added global lockfile deletion for bun install and implemented updatePluginRegistry for consistent plugin versioning.
  • src/genie.ts
    • Updated startNamedSession to use getAgentsFilePath instead of getAgentsSystemPrompt for system prompt resolution.
  • src/hooks/handlers/auto-spawn.ts
    • Refactored autoSpawn logic, introduced buildSearchNames and buildSpawnArgs helpers, and improved existing agent checks.
  • src/hooks/index.ts
    • Refactored executeBlockingChain to utilize a runHandler helper for cleaner execution flow.
  • src/lib/tests/mailbox.test.ts
    • Added a new test file for mailbox functionality, including tests for send, inbox, markDelivered, body truncation, and concurrency.
  • src/lib/agent-directory.test.ts
    • Updated tests to cover project/global scoping, worktree resolution, and new agent names.
  • src/lib/agent-directory.ts
    • Implemented project-level and global agent directories, added getProjectRoot and getMainRepoRoot for worktree support, and updated CRUD operations to respect scope.
  • src/lib/agent-registry.ts
    • Updated the Agent interface role description to reflect new agent names.
  • src/lib/builtin-agents.test.ts
    • Updated tests to reflect the new agent discovery mechanism, agent names, and model changes.
  • src/lib/builtin-agents.ts
    • Overhauled built-in agent loading to scan plugins/genie/agents/ for AGENTS.md files, parsing frontmatter for metadata, and removed hardcoded system prompts.
  • src/lib/provider-adapters.test.ts
    • Added tests for handling systemPrompt and systemPromptFile in buildClaudeCommand, ensuring correct temporary file creation and flag usage.
  • src/lib/provider-adapters.ts
    • Modified buildClaudeCommand to write inline systemPrompt to a temporary file and use file-based flags, and added an initialPrompt parameter.
  • src/lib/team-auto-spawn.ts
    • Updated getSystemPrompt to getSystemPromptFile and buildTeamLeadCommand to use systemPromptFile.
  • src/lib/team-lead-command.ts
    • Updated buildTeamLeadCommand to use basename(process.cwd()) for GENIE_AGENT_NAME and agent-id, and to directly use systemPromptFile without an intermediate copy step.
  • src/lib/team-manager.test.ts
    • Updated tests for hireAgent to reflect the new council member count and added tests for setTeamStatus.
  • src/lib/team-manager.ts
    • Added TeamStatus to TeamConfig, updated getWorktreeBase to default to ~/.genie/worktrees/<project-name>/, and introduced pruneStaleWorktrees and setTeamStatus functions.
  • src/term-commands/agents.ts
    • Updated resolveAgentForSpawn to use resolveBuiltinAgentPath, changed implementor to engineer in error messages, and added spawnIntoCurrentWindow to SpawnCtx. Refactored launchTmuxSpawn to use createTmuxPane and applySpawnLayout.
  • src/term-commands/dir.ts
    • Added a --global option to add, rm, and edit commands, and updated listEntriesJson and printRegisteredTable to display agent scope.
  • src/term-commands/dispatch.ts
    • Fixed a regex loop issue in parseWishGroups.
  • src/term-commands/msg.test.ts
    • Updated tests for buildTeamLeadCommand to reflect the GENIE_AGENT_NAME change and systemPromptFile usage.
  • src/term-commands/msg.ts
    • Added a resolveTeamName helper function for consistent team name resolution.
  • src/term-commands/team.test.ts
    • Added tests for team ls displaying status, team done, and team blocked commands.
  • src/term-commands/team.ts
    • Added a --wish option to team create, implemented spawnLeaderWithWish to copy wishes, hire standard teams, and spawn leaders, and added team done and team blocked commands.
  • src/types/genie-config.ts
    • Made worktreeBase optional and added autoMergeDev to the GenieConfigSchema.
Ignored Files
  • Ignored by pattern: .github/workflows/** (3)
    • .github/workflows/ci.yml
    • .github/workflows/release.yml
    • .github/workflows/rolling-pr.yml
Activity
  • This pull request is a rolling promotion of the dev branch into main, consolidating several recent features and fixes.
  • It incorporates changes from previous pull requests, including fixes for resetting team directories, linting improvements, removal of flaky tests, and enhancements to worktree and agent directory resolution.
  • The merge process explicitly requires using 'Create a merge commit' to maintain history synchronization between dev and main.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

const wins = await tmux.listWindows(session);
layoutTarget = wins[0] ? wins[0].id : `${session}:`;

P2 Badge Target current window when spawning without explicit team

When spawnIntoCurrentWindow is enabled, launchTmuxSpawn intentionally passes teamWindow = null, but applySpawnLayout then falls back to wins[0]. In any session where the current window is not the first window, implicit genie spawn calls will re-layout the wrong window and leave the newly spawned pane in the current window un-arranged. This should resolve to the active/current window for the no-team-window path instead of hardcoding the first window.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +49 to +52
`GENIE_AGENT_NAME=${shellQuote(folderName)}`,
'claude',
`--agent-id ${shellQuote(`team-lead@${sanitized}`)}`,
`--agent-name ${shellQuote('team-lead')}`,
`--agent-id ${shellQuote(`${folderName}@${sanitized}`)}`,
`--agent-name ${shellQuote(folderName)}`,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Keep team-lead identity stable across native routing

This now derives the leader identity from basename(process.cwd()), but the rest of the native messaging path still treats the leader as team-lead (for example session.ts registers the leader role/native ID as team-lead, and protocol-router.ts writes native inbox messages using worker.role). That mismatch means messages addressed to the lead can be routed to a different inbox/agent ID than the process launched here, which can break leader-directed messaging and auto-spawn coordination in native-team sessions.

Useful? React with 👍 / 👎.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request is a major release, promoting the dev branch to main. It includes a vast number of improvements, new features, and significant refactoring for better maintainability and robustness. Key changes include a new /level-up command, a complete overhaul of built-in agent definitions to be file-based, the introduction of project-scoped agent directories, and enhanced automation in the agent workflow. The code quality is high, and the changes are well-structured. I have one minor suggestion to clean up a redundant entry in the .gitignore file.

Comment thread .gitignore
Comment on lines 48 to +50
# Claude Code worktrees
.claude/worktrees/
.worktrees/

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The entry .worktrees/ is listed twice in this file (lines 46 and 50). To avoid redundancy, you can remove one of the entries.

# Claude Code worktrees
.claude/worktrees/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants