Skip to content

feat: agent delegation mechanics + Ollama refs - #58

Open
tmartin2113 wants to merge 18 commits into
mainfrom
feature/infra-test-e2e-validation
Open

feat: agent delegation mechanics + Ollama refs#58
tmartin2113 wants to merge 18 commits into
mainfrom
feature/infra-test-e2e-validation

Conversation

@tmartin2113

Copy link
Copy Markdown
Owner

Summary

  • Senior engineers can now delegate to assistants — added concrete Paperclip API curl templates with env var references (PAPERCLIP_API_URL, PAPERCLIP_COMPANY_ID, PAPERCLIP_AGENT_ID_*_ASSISTANT) to all 4 senior engineer AGENTS.md files. Previously they were told to "create a research subtask" with zero API mechanics.
  • Updated all 10 AGENTS.md files from vLLM → Ollama references (post-migration cleanup)
  • CTO delegation section now lists all agent UUID env var names for direct lookup
  • Removed orphaned agents/instructions/ directory — parallel instruction set from an old plan, never wired into bootstrap-org.cjs

Why

Every research call a senior engineer does on Claude tokens that should've gone to a free Ollama assistant is burning money. The delegation path was documented in the CTO instructions but completely missing from the senior engineers — they literally couldn't create subtasks for their assistants.

Test plan

  • Verify bootstrap-org.cjs still points to agents/<role>/AGENTS.md (unchanged)
  • Verify env vars (PAPERCLIP_AGENT_ID_*_ASSISTANT) are written to .env by bootstrap
  • Create a test issue assigned to a senior engineer and confirm it delegates research to its assistant
  • Confirm no references to agents/instructions/ remain in active code

🤖 Generated with Claude Code

tmartin2113 and others added 18 commits April 15, 2026 12:17
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…nts (VIB-58 Tasks 1-2)

Add agents/infra_health.py with SERVICE_REGISTRY (11 services),
normalize_response, probe_service, check_all (concurrent), and
check_service. Wire /api/infrastructure/health and
/api/infrastructure/health/{service} into the health server.
26 tests covering normalization, probing, aggregation, and
server integration.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…gets

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- penpot-frontend nginx listens on 8080, not 80
- penpot-backend /readyz returns 200, root / returns 404

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add HOST_OS/HOST_ARCH detection via uname, wrap distro detection in
Linux guard (darwin sets DISTRO_FAMILY=darwin), add brew cases to all
three package manager functions, skip root check on macOS, and adjust
TOTAL_STEPS for macOS.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the vLLM GPU auto-tuning step with Ollama installation and
model selection based on available memory (VRAM on Linux+GPU, unified
memory on macOS, system RAM on Linux without GPU). Ollama runs natively
on the host and provides an OpenAI-compatible API at port 11434.

Step 5 (NVIDIA toolkit) is now guarded — only installed on Linux when
GPU detected, used only for opensandbox/comfyui. GPU compose no longer
includes a vLLM service. MiroFish follows the Ollama model selection.

Memory tiers: >=40GB->qwen3.5:27b, >=20GB->qwen3.5:9b,
>=12GB->qwen3.5:9b, >=8GB->qwen3.5:4b, <8GB->cloud only.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- docker-compose.gpu.yml: Remove entire vllm service and vllm-models
  volume; update header to reflect GPU sandbox + image generation only
- docker-compose.yml: Change VIBE_BACKEND_PORT default from 8000 to
  11434; update header comment removing vllm from GPU services list
- Dockerfile: Change VIBE_BACKEND_HOST from vllm to
  host.docker.internal, VIBE_BACKEND_PORT from 8000 to 11434
- .env.example: Replace vLLM section with Ollama section (tier table,
  OLLAMA_MODEL var); move VLLM_* vars to commented legacy section;
  update MIROFISH_LLM_API_URL default to Ollama port

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Wrap all Linux-specific steps (SSH config, SFTP workspace, iptables,
watchdog, auditd, fail2ban, unattended-upgrades) in HOST_OS guards.
Add macOS alternatives: lsof for port checks, brew for prereqs and
Caddy, Docker Desktop detection, simpler workspace setup, pf firewall
with Tailscale-only access, osxkeychain for Docker credentials.

Fix macOS compatibility: sed -i portability in _update_env_var,
replace grep -oP with grep -Eo in common code paths, platform-aware
WORKSPACE_PATH default ($HOME/vibe-workspace on macOS).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…alth check

Ollama doesn't expose /health — use /v1/models which both Ollama and vLLM support.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Defines the three validation layers (service health, integration connectivity,
pipeline e2e) and the services under test across all three compose files.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
Add TestServiceHealth (13 tests), TestInterServiceDNS (2 tests), and
TestDockerHealthStatus (1 test) covering all services across
docker-compose.yml, docker-compose.infra.yml, and docker-compose.gpu.yml.

Tests skip gracefully when services are not deployed. GPU tests skip
when no NVIDIA GPU is detected. Register `infra` pytest marker.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
… refs

Senior engineers could not create ad-hoc research subtasks because their
AGENTS.md files said "create a research subtask" without showing the API
call, env vars, or assistant UUID. Now each senior has a concrete curl
template with PAPERCLIP_API_URL, PAPERCLIP_COMPANY_ID, and their
assistant's env var (e.g., PAPERCLIP_AGENT_ID_BACKEND_ASSISTANT).

Also:
- Updated all 10 AGENTS.md files: vLLM → Ollama references
- Added env var names for all agent UUIDs in CTO delegation section
- Removed orphaned agents/instructions/ directory (never wired in)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.

2 participants