Skip to content

Harden supervisor skillRoots handling for no-babysitting worker spawns #1

Description

@pirajoke

Context

A real no-babysitting test failed when the supervisor passed the project repo path as worker skillRoots. The runtime rejected it with: skill root contains no skill directories.

Local patch prepared

  • Validate supervisor-requested skillRoots before bridge.spawnAgent.
  • Pass only directories that contain SKILL.md or immediate child skill directories with SKILL.md.
  • Ignore invalid skill roots and record worker_skill_roots_ignored execution events instead of killing the worker spawn.
  • Tighten worker_spawn tool description so the supervisor omits skillRoots for normal project work.

Local files changed

  • src/server/supervisor/index.ts
  • src/server/supervisor/tools.ts
  • tests/supervisor/index.test.ts

Validation

  • PASS: pnpm exec vitest run tests/supervisor/index.test.ts -t "skill roots"
  • PASS: pnpm exec eslint src/server/supervisor/index.ts src/server/supervisor/tools.ts tests/supervisor/index.test.ts
  • NOTE: full tests/supervisor/index.test.ts still has an unrelated existing failure in lets the supervisor send a generated user-visible message before ending its turn: persisted message order is supervisor,user vs expected user,supervisor.

Follow-up

Add watchdog/budget limits for worker startup and no-output loops as a separate hardening pass.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions