A bash-based installation and project setup system for OpenCode with isolated VM execution via Lima, featuring MCP integration, skills management, and GitHub authentication
Albert Code is a bash-based installer/orchestrator with 18 tools, but exhibits critical definition gaps. Tools 1-4 (phase_a, phase_b, phase_run, phase_update) have descriptions but NO visible input schemas in the source code, they are inferred from function signatures in lib/phases.sh, not explicitly registered. Tools 5-18 have partial schemas (some params documented, others missing types). Descriptions are present but often generic or French-only, making LLM selection difficult. No error handling guidance, no output schemas documented, no tool annotations. The server is STDIO-only, capping protocol readiness at 50 regardless of definition quality.
Exécute une commande (git clone, brew, chmod…) - executes a command with dry-run support
Ajoute une ligne à un fichier - appends a line to a file with dry-run support
Change les permissions d'un fichier - changes file permissions with dry-run support
Copie un fichier - copies a file with dry-run support
Crée un dossier (-p) - creates a directory with dry-run support
Crée un lien symbolique - creates a symbolic link with dry-run support
Touch un fichier - creates/touches a file with dry-run support
Écrit (écrase) un fichier - writes/overwrites a file with dry-run support
Four phase tools (phase_a, phase_b, phase_run, phase_update) have NO visible input schemas in source code. They are inferred from bash function signatures, not explicitly registered with MCP tool definitions.
Six tools (setup_github_auth, sync_skills, check_opencode, and three phase tools) have NO documented output schemas. LLMs cannot plan downstream calls or extract return values without knowing what fields to expect.
Descriptions are present but generic and often French-only (e.g., 'Crée un shim exécutable sur le PATH'). English descriptions are needed for LLM selection. Descriptions lack WHEN to use, WHAT it returns, and prerequisites. Average length ~60 chars; baseline is 194 chars for A+ tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | 2026-07-28+ | v2 |
Vérifie la présence d'OpenCode - verifies OpenCode installation and availability in the VM
Vérifie la conformité du projet - checks project compliance with French administration standards (legal footer, accessibility, secrets, production URLs, fixture data)
Crée un shim exécutable sur le PATH pour une commande shell - creates executable wrapper for shell functions in system PATH directories
Réécrit une variable d'environnement dans ~/.zshenv - persists environment variables in ~/.zshenv with auto-repair property
Bootstrap hôte (idempotent) - installs Lima VM engine, Albert API key, GitHub authentication, VM runtime, skills synchronization, and validates VM resources
Scaffold du projet courant - generates AGENTS.md, opencode.json with MCP connectors, skills selection, and VM runtime configuration
Lancement de la VM isolée - launches OpenCode in isolated Lima VM with proper shell environment and resource allocation
Rafraîchit un projet configuré - updates project configuration and repairs the skills catalog
Câble l'auth GitHub de la VM - configures GitHub authentication for push and PR operations in the VM
Clone ou met à jour les skills État - clones or updates skills from etalab-ia/skills repository with manifest-based selection
No error handling guidance. Tools like 'apply' and 'apply_write' perform destructive operations (WRITE risk) but provide no recovery hints, retryability classification, or confirmation patterns. Agents cannot distinguish retryable from fatal failures.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools marked WRITE risk (apply_*, phase_* tools) should declare destructiveHint=true. Tools like check_opencode and conformity-check should declare readOnlyHint=true. This metadata is required for safe agent planning.