Exploracion segura en Plan Mode read-only con plan.md firmado por humano antes de transicionar a escritura.
Antes de modificar un repositorio desconocido, el agente entra en Plan Mode (solo-lectura). Explora el código, mapea convenciones y escribe un plan.md con hallazgos y arquitectura propuesta. Obtiene aprobación humana directa sobre ese plan antes de transicionar a un modo de escritura (Direct). El artefacto de aprobación es texto auditable, no un "ok" verbal.
Lanzar un agente con permisos de escritura sobre un repo desconocido es destrucción probabilística. El primer error borra archivos clave o reescribe convenciones del proyecto, y recuperar es caro. Plan Mode separa exploración de mutación: el agente puede equivocarse al razonar sin tocar el disco, y el humano revisa el plan antes de que cualquier herramienta destructiva se habilite.
plan.md firmado por humano, texto auditable.options = ClaudeAgentOptions(
permission_mode="plan",
allowed_tools=["Read", "Glob", "Grep"],
system_prompt=(
"En Plan Mode: explora, mapea, redacta plan.md. NO escribas código."
),
)
# hook PreToolUse niega escritura mientras el modo sea plan:
write_tools = {"Write", "Edit", "NotebookEdit", "Bash"}
def pre_tool_use(tool_name, mode):
def decision(value, reason):
return {"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"permissionDecision": value,
"permissionDecisionReason": reason,
}}
if tool_name in write_tools and mode == "plan":
return decision("deny", "Plan Mode: escritura bloqueada hasta aprobar plan.md")
return decision("allow", "tool de solo lectura o modo de ejecucion")La transición a permission_mode de escritura ocurre solo después de que un humano firma plan.md. Si el plan cambia, se vuelve a Plan Mode, se actualiza plan.md y se re-pide aprobación.
options = ClaudeAgentOptions(
permission_mode="bypassPermissions",
allowed_tools=["Read", "Write", "Edit", "Bash"], # escritura desde el inicio
)Arrancar en bypassPermissions con herramientas de escritura habilitadas sobre un repo desconocido elimina la fase de exploración segura y entrega el disco al primer error de razonamiento.
Plan Mode es un contrato de dos modos read-only/write con transición firmada por humano, no un "modo de cortesía". Los hooks aplican el modo: enumeran las tools de escritura (Write, Edit, NotebookEdit, y Bash con redirecciones) y las deniegan mientras el modo sea plan. El artefacto de aprobación es plan.md firmado; cambios al plan re-piden aprobación.
katas-hierarchical-claude-memorykatas-custom-commands-skillskatas-session-resume-forkCapas del packet, cargables bajo demanda (disciplina ICM: una capa por vez, nunca todas juntas): knowledge/ cuerpo de conocimiento · prompts/ prompts listos · examples/ salida de ejemplo · agents/ subagentes del packet · templates/ plantilla de output.
e8f986b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.