Archivist es un componente portable de Git hooks para registrar prompts de IA por commit.
pre-commit- Ejecuta
gga runsiARCHIVIST_RUN_GGA=true. - Captura un prompt opcional desde la terminal (
Ctrl+Dpara terminar). - Si no hay TTY interactiva, continúa el commit sin prompt.
- Ejecuta
commit-msg- Valida la primera línea real del mensaje con:
<type>: <mensaje><type>(<scope>): <mensaje>
- Si está vacío o no cumple formato, intenta autocorregir con IA si
ARCHIVIST_AUTOFIX_COMMIT_MESSAGE=true.
- Valida la primera línea real del mensaje con:
post-commit- Si hubo prompt, crea un markdown en
ARCHIVIST_PROMPT_DIR. - Incluye commit SHA, commit message, resumen IA y prompt.
- Deja el archivo staged para el siguiente commit.
- Si hubo prompt, crea un markdown en
- Git
opencodeinstalado y configurado (resumen IA y autocorrección de commit message)ggasiARCHIVIST_RUN_GGA=true
Instalación recomendada (standalone, para cualquier proyecto):
bash archivist-installer.shQué hace exactamente:
- extrae una carpeta
archivist/completa desde el payload embebido en el script - si ya existe
archivist/:- sin opciones: falla y muestra alternativas
- con
--force: borraarchivist/completo y reinstala - con
--update: borra y reinstalaarchivist/, preservando prompts guardados.
- ejecuta
archivist/core/install.sh(leer sección de instalación directa)
Cuando ya tienes archivist/ en el repo actual.
bash archivist/core/install.shEsto:
- crea hooks de Archivist faltantes en
.githooks/ - no sobrescribe hooks ajenos existentes en
.githooks/ - configura
core.hooksPath=.githooks(config local de Git) - crea
archivist/core/archivist.envdesde el ejemplo si no existe - utiliza
--updatepara refrescar hooks de Archivist
bash archivist-installer.sh --updateReemplaza toda la carpeta archivist/, preservando ai-prompts y archivist.env.
bash archivist-installer.sh --forceReemplaza toda la carpeta archivist/, igual que en una nueva instalación.
bash archivist/core/install.sh --updatebash archivist/core/uninstall.shEsto elimina wrappers de .githooks/ y deshace core.hooksPath si estaba en .githooks.
Solo elimina wrappers gestionados por Archivist; hooks ajenos se conservan.
Si .githooks aún contiene hooks, mantiene core.hooksPath=.githooks.
No elimina la carpeta archivist/ ni tus archivos de configuración.
Archivo: archivist/core/archivist.env
ARCHIVIST_PROMPT_DIR(default:archivist/ai-prompts)ARCHIVIST_RUN_GGA(default:true)ARCHIVIST_AUTOFIX_COMMIT_MESSAGE(default:true)ARCHIVIST_OPENCODE_BIN(default:opencode)ARCHIVIST_GGA_BIN(default:gga)
Override local opcional: archivist/core/archivist.local.env.
Nombre:
YYYY-MM-DD_HH-MM-SS_<short-sha>.md
Contenido:
# Commit: <full-sha>Capturado: <timestamp># Commit Message# Resumen# Prompt
Más detalles de formato en ai-prompts/README.md.
bash archivist/core/rebuild-installer.shModo plantilla (sin archivist/core/archivist.env ni prompts históricos):
bash archivist/core/rebuild-installer.sh --templateSi archivist-installer.sh no existe, rebuild-installer.sh lo crea automáticamente.
Archivist is a portable Git hooks component that records AI prompts per commit.
pre-commit- Runs
gga runwhenARCHIVIST_RUN_GGA=true. - Captures an optional prompt from the terminal (
Ctrl+Dto finish). - If no interactive TTY is available, the commit continues without a prompt.
- Runs
commit-msg- Validates the first real commit line using:
<type>: <message><type>(<scope>): <message>
- If empty or invalid, it tries AI auto-fix when
ARCHIVIST_AUTOFIX_COMMIT_MESSAGE=true.
- Validates the first real commit line using:
post-commit- If a prompt was captured, creates a markdown file in
ARCHIVIST_PROMPT_DIR. - Includes commit SHA, commit message, AI summary, and prompt.
- Stages that file for the next commit.
- If a prompt was captured, creates a markdown file in
- Git
opencodeinstalled and configured (AI summary and commit-message auto-fix)ggaifARCHIVIST_RUN_GGA=true
Recommended install (standalone, for any repository):
bash archivist-installer.shWhat it does:
- extracts a full
archivist/directory from the script's embedded payload - if
archivist/already exists:- with no option: fails and shows alternatives
- with
--force: deletesarchivist/and reinstalls from scratch - with
--update: deletes and reinstallsarchivist/, preserving saved prompts.
- runs
archivist/core/install.sh(see direct install section)
When archivist/ already exists in the current repository.
bash archivist/core/install.shThis:
- creates missing Archivist hooks in
.githooks/ - does not overwrite existing non-Archivist hooks in
.githooks/ - sets
core.hooksPath=.githooks(local Git config) - creates
archivist/core/archivist.envfrom the example if missing - use
--updateto refresh Archivist hooks
bash archivist-installer.sh --updateReplaces the entire archivist/ directory while preserving ai-prompts and archivist.env.
bash archivist-installer.sh --forceReplaces the entire archivist/ directory, same as in a fresh installation.
bash archivist/core/install.sh --updatebash archivist/core/uninstall.shThis removes .githooks wrappers and unsets core.hooksPath when it is .githooks.
It only removes Archivist-managed wrappers; non-Archivist hooks are preserved.
If .githooks still has hooks, core.hooksPath=.githooks is kept.
It does not remove archivist/ nor your local config files.
File: archivist/core/archivist.env
ARCHIVIST_PROMPT_DIR(default:archivist/ai-prompts)ARCHIVIST_RUN_GGA(default:true)ARCHIVIST_AUTOFIX_COMMIT_MESSAGE(default:true)ARCHIVIST_OPENCODE_BIN(default:opencode)ARCHIVIST_GGA_BIN(default:gga)
Optional local override: archivist/core/archivist.local.env.
Filename:
YYYY-MM-DD_HH-MM-SS_<short-sha>.md
Content:
# Commit: <full-sha>Capturado: <timestamp># Commit Message# Resumen# Prompt
See ai-prompts/README.md for output details.
bash archivist/core/rebuild-installer.shTemplate mode (without archivist/core/archivist.env and historical prompts):
bash archivist/core/rebuild-installer.sh --templateIf archivist-installer.sh is missing, rebuild-installer.sh creates it automatically.