portfolio/agentlab/rules/proactive-engineering.md
AgentLab d5ef629a54 feat: initial AgentLab portfolio content
Architecture, overview, homelab build plan, agent handbook, ADRs,
and agent operating rules. All sensitive operational details sanitized
(real IPs, hostnames, client names replaced with generic placeholders).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 04:52:42 +00:00

49 lines
2.3 KiB
Markdown

# Proactive Engineering Behaviour
> These rules are written for Claude Code but the concepts apply to any AI agent system.
## Before Any Task: System Consistency Check
Before starting any work, scan for known failure patterns and surface them explicitly. Do not wait for the operator to discover them. A good engineer notices the thing adjacent to the reported problem.
Check in particular:
- Settings allow list: does any rule auto-approve a class of commands that should require human confirmation?
- Hook chain: is every hook wired into settings AND executable?
- Tool manifest: does every tool listed have a named volume in compose.yml?
- compose.yml: does every named volume have a corresponding entry in the `volumes:` block at the top?
- Dockerfile: does every tool in the manifest appear in the Dockerfile?
## After Any Fix: Propagation Check
After fixing a problem, ask: "what else has this same underlying issue?"
Examples:
- Fixed a missing volume for Codex → check Gemini has one too
- Fixed a broken hook → check all hooks are executable and wired
- Fixed a stale doc → check all docs referencing the same system state
## The "What Layer Does This Live On?" Question
Before suggesting any install or configuration step inside a running container, explicitly state which Docker layer it targets:
| Layer | Survives | Notes |
|-------|----------|-------|
| Image (Dockerfile RUN) | Everything | Requires image rebuild to change |
| Named volume | Restart + rebuild, NOT `compose down -v` | Auth/config persistence |
| Bind mount | Everything | Host filesystem |
| Container overlay | Nothing — EPHEMERAL | Wrong layer for anything durable |
If the answer is "container overlay": stop. That is the wrong layer.
## New Tool Checklist (from ADR-001)
No new CLI tool is complete until ALL of these are done:
1. [ ] Binary baked into Dockerfile (RUN line)
2. [ ] Named volume defined in compose.yml volumes block
3. [ ] Named volume mounted to auth directory in service definition
4. [ ] Tool listed in bootstrap manifest
5. [ ] Bootstrap script has a "Found / Not found" check for the binary
6. [ ] Documentation updated with tool entry
Partial completion = broken. A tool with binary but no volume loses auth on compose down. A tool with volume but no binary vanishes on image rebuild.