# Estilo del código

{% hint style="info" %}

* Los ejemplos y módulos de Terraform deberían integrar documentación que describa sus funcionalidades y el cómo utilizarlas.
* Enlaces en el sitio web del Terraform Registry son relevantes y no funcionarán, así que hacer uso de rutas absolutas en el README.md.
* La documentación puede incluir diagramas creados con [<mark style="color:purple;">mermaid</mark>](https://github.com/mermaid-js/mermaid) \*\*\*\* y planos creados con [<mark style="color:purple;">cloudfcraft.co</mark>](https://www.cloudcraft.co).
* Hacer uso de los \*\*\*\* [<mark style="color:purple;">hooks de pre-commit de Terraform</mark>](https://github.com/antonbabenko/pre-commit-terraform) \*\*\*\* para asegurarse de que el código es válido, de que está en el formato adecuado y está documentado adecuadamente antes de que sea *pusheado* a git y revisado por una persona.\\
  {% endhint %}

### **Documentación**

#### **Documentación generada automáticamente**

[<mark style="color:purple;">pre-commit</mark>](https://pre-commit.com) \*\*\*\* es un marco de trabajo **-***framework*- para administrar y mantener hooks de precommit multi lenguaje. Está escrito en Python y es una herramienta potente para hacer algo de manera automática en la máquina del desarrollador antes de que el código sea *commiteado* al repositorio de git. Normalmente, es utilizado para ejecutar *linters* y formatear código (ver [<mark style="color:purple;">hooks soportados</mark>](https://pre-commit.com/hooks.html)).

Con las configuraciones de Terraform, el `pre-commit` puede ser utilizado para formatear y validar código, así como actualizar documentación.

Se recomienda revisar el [<mark style="color:purple;">repositorio de pre-commit-terraform</mark>](https://github.com/antonbabenko/pre-commit-terraform/blob/master/README.md) para la familiarización con el mismo, y con otros repositorios existentes (por ejemplo, [<mark style="color:purple;">terraform-aws-vpc</mark>](https://github.com/terraform-aws-modules/terraform-aws-vpc)) en donde está siendo utilizado.

@porhacer: Documentar versiones de módulos, liberaciones, GH Actions.

### Recursos

1\. [<mark style="color:purple;">Página principal de pre-commit</mark>](https://pre-commit.com).

2\. [<mark style="color:purple;">Colección de git hooks para Terraform a ser usados con el framework pre-commit</mark>](https://github.com/antonbabenko/pre-commit-terraform).

3\. Publicación de blog por [<mark style="color:purple;">Dean Wilson: hooks de pre-commit y terraform – una red segura para tus repositorios</mark>](https://www.unixdaemon.net/tools/terraform-precommit-hooks/).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.terraform-best-practices.com/es/code-styling.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
