feat: add day0 command handbook and git-linked changelog in Filament
This commit is contained in:
parent
80cc3825e6
commit
44438093a9
36
docs/NETGESCON-GIT-AUTOCHANGELOG.md
Normal file
36
docs/NETGESCON-GIT-AUTOCHANGELOG.md
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
# NetGescon Git Auto Changelog
|
||||
|
||||
Generato automaticamente da Git il 11/03/2026 16:20.
|
||||
|
||||
Repository sorgente: `/home/michele/netgescon/netgescon-day0`
|
||||
|
||||
## Milestone Storico
|
||||
- Prima registrazione Git disponibile: **29/06/2025** - `24992624` - Initial commit
|
||||
- Commit storico dichiarato `1448a3d`: non presente nel repository locale corrente (possibile storico esterno).
|
||||
|
||||
## Ultimi Commit Classificati
|
||||
|
||||
| Data | Commit | Tipo | Messaggio |
|
||||
| --- | --- | --- | --- |
|
||||
| 11/03/2026 | `80cc382` | Operativo | ops: complete day0 restart commands and fix supporto/modifiche flow |
|
||||
| 11/03/2026 | `13813fe` | Documentazione | docs: include continuity and filament cutover docs in start order |
|
||||
| 11/03/2026 | `8fef3b2` | Aggiunto | feat: add filament-only cutover mode and checklist |
|
||||
| 11/03/2026 | `dbbde9c` | Operativo | chore: ignore generated day0 audit reports |
|
||||
| 11/03/2026 | `5375713` | Operativo | ops: add legacy vault sync for day0 continuity |
|
||||
| 11/03/2026 | `f0932be` | Documentazione | docs: add day0 restart handoff pack |
|
||||
| 10/03/2026 | `f52e56d` | Documentazione | docs: note gitea unblock and final day-0 push |
|
||||
| 10/03/2026 | `ff0dc59` | Operativo | chore: day-0 workspace alignment and miki-bug isolation |
|
||||
|
||||
## Uso Operativo
|
||||
|
||||
1. Aggiorna il changelog automatico:
|
||||
|
||||
```bash
|
||||
bash scripts/ops/netgescon-sync-git-changelog.sh
|
||||
```
|
||||
|
||||
2. Aggiorna changelog funzionale manuale (supporto/modifiche):
|
||||
|
||||
```bash
|
||||
bash scripts/ops/netgescon-add-modifica.sh --area "<Area>" --desc "<Descrizione>" --type U
|
||||
```
|
||||
121
docs/ai/restart/AGENT-OPERATIVO-COMANDI-DAY0.md
Normal file
121
docs/ai/restart/AGENT-OPERATIVO-COMANDI-DAY0.md
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
# Agent Operativo - Comandi Day-0
|
||||
|
||||
Documento operativo da dare al nuovo agent.
|
||||
|
||||
## 0. Letture obbligatorie iniziali
|
||||
|
||||
```bash
|
||||
cd /home/michele/netgescon/netgescon-day0
|
||||
sed -n '1,220p' docs/ai/restart/START-HERE-NETGESCON-DAY0.md
|
||||
sed -n '1,260p' docs/ai/restart/HANDOFF_AGENT_OPERATIVO_20260311.md
|
||||
sed -n '1,260p' docs/ai/restart/CONTINUITA-STORICO-DAY0.md
|
||||
sed -n '1,260p' docs/ai/restart/FILAMENT-ONLY-CUTOVER-CHECKLIST.md
|
||||
```
|
||||
|
||||
## 1. Preflight workspace e continuita
|
||||
|
||||
```bash
|
||||
cd /home/michele/netgescon/netgescon-day0
|
||||
git pull --rebase origin main
|
||||
git status --short --branch
|
||||
bash scripts/ops/netgescon-day0-legacy-sync.sh
|
||||
```
|
||||
|
||||
## 2. Dipendenze locali (se mancanti)
|
||||
|
||||
```bash
|
||||
cd /home/michele/netgescon/netgescon-day0
|
||||
composer install
|
||||
npm install
|
||||
```
|
||||
|
||||
## 3. Avvio/Riavvio server sviluppo su :8000
|
||||
|
||||
```bash
|
||||
pkill -f "php artisan serve --host=0.0.0.0 --port=8000" || true
|
||||
cd /home/michele/netgescon/netgescon-day0
|
||||
mkdir -p storage/logs
|
||||
nohup php artisan serve --host=0.0.0.0 --port=8000 --no-reload > storage/logs/dev-server.log 2>&1 &
|
||||
sleep 2
|
||||
curl -I -sS http://127.0.0.1:8000/up | head -n 1
|
||||
```
|
||||
|
||||
## 4. Check Filament e pagina modifiche
|
||||
|
||||
```bash
|
||||
curl -I -sS http://127.0.0.1:8000/admin-filament | head -n 1
|
||||
curl -I -sS http://127.0.0.1:8000/admin-filament/supporto/modifiche | head -n 1
|
||||
```
|
||||
|
||||
## 5. Aggiornare changelog manuale (feature/bug)
|
||||
|
||||
```bash
|
||||
cd /home/michele/netgescon/netgescon-day0
|
||||
bash scripts/ops/netgescon-add-modifica.sh \
|
||||
--area "Filament / Ticket / Google" \
|
||||
--desc "<funzionalita o bugfix>" \
|
||||
--type U
|
||||
```
|
||||
|
||||
Tipi validi:
|
||||
|
||||
- `U` utenti finali
|
||||
- `P` operativo/sviluppo
|
||||
- `E` errore non bloccante
|
||||
- `E!` errore bloccante
|
||||
|
||||
## 6. Agganciare il changelog automatico al Git
|
||||
|
||||
```bash
|
||||
cd /home/michele/netgescon/netgescon-day0
|
||||
bash scripts/ops/netgescon-sync-git-changelog.sh
|
||||
```
|
||||
|
||||
File generato:
|
||||
|
||||
- `docs/NETGESCON-GIT-AUTOCHANGELOG.md`
|
||||
|
||||
## 7. Commit e push con changelog aggiornato
|
||||
|
||||
```bash
|
||||
cd /home/michele/netgescon/netgescon-day0
|
||||
git add docs/NETGESCON-MODIFICHE.md docs/NETGESCON-GIT-AUTOCHANGELOG.md
|
||||
git add -A
|
||||
git commit -m "feat: <descrizione sintetica>"
|
||||
git push origin main
|
||||
```
|
||||
|
||||
## 8. Backup chat/sessione AI (anti-perdita)
|
||||
|
||||
```bash
|
||||
cd /home/michele/netgescon/netgescon-day0
|
||||
bash scripts/ai/handoff_checkpoint.sh
|
||||
bash scripts/ai/topic_checkpoint.sh "NetGescon Day-0" "Checkpoint operativo"
|
||||
bash scripts/ai/save_periodic_summary.sh "NetGescon Day-0" both
|
||||
bash scripts/ai/archive_heavy_chats.sh --threshold=150 --dry-run
|
||||
bash scripts/ai/archive_heavy_chats.sh --threshold=150 --apply
|
||||
bash scripts/ai/continuity_auto.sh --threshold=150 --topic="NetGescon Day-0" --note="Ripartenza sviluppo"
|
||||
```
|
||||
|
||||
## 9. Ciclo aggiornamento staging
|
||||
|
||||
```bash
|
||||
cd /var/www/netgescon
|
||||
php artisan optimize:clear
|
||||
php artisan config:clear
|
||||
php artisan route:clear
|
||||
php artisan netgescon:update --channel=free
|
||||
php artisan netgescon:update --channel=free --apply
|
||||
curl -I -sS "https://staging.netgescon.it/up" | head -n 1
|
||||
curl -I -sS "https://staging.netgescon.it/fornitore/tickets?fornitore=1" | head -n 1
|
||||
```
|
||||
|
||||
## 10. Prompt standard da dare al nuovo agent
|
||||
|
||||
```text
|
||||
Leggi prima:
|
||||
- docs/ai/restart/AGENT-OPERATIVO-COMANDI-DAY0.md
|
||||
- docs/ai/restart/START-HERE-NETGESCON-DAY0.md
|
||||
- docs/ai/restart/HANDOFF_AGENT_OPERATIVO_20260311.md
|
||||
Poi esegui i passi 1->10 senza saltare controlli.
|
||||
```
|
||||
|
|
@ -118,12 +118,13 @@ ### H. Ciclo update staging
|
|||
## Documenti da leggere in ordine (ripartenza agent)
|
||||
|
||||
1. `docs/ai/restart/START-HERE-NETGESCON-DAY0.md` (questo file)
|
||||
2. `docs/ai/restart/HANDOFF_AGENT_OPERATIVO_20260311.md`
|
||||
3. `docs/ai/restart/CONTINUITA-STORICO-DAY0.md`
|
||||
4. `docs/ai/restart/FILAMENT-ONLY-CUTOVER-CHECKLIST.md`
|
||||
5. `docs/RUNBOOK-DISTRIBUZIONE-REMOTA-NETGESCON.md`
|
||||
6. `docs/distribuzione-update-netgescon.md`
|
||||
7. `Miki-Bug-workspace/AGENT_GIT.MD`
|
||||
2. `docs/ai/restart/AGENT-OPERATIVO-COMANDI-DAY0.md`
|
||||
3. `docs/ai/restart/HANDOFF_AGENT_OPERATIVO_20260311.md`
|
||||
4. `docs/ai/restart/CONTINUITA-STORICO-DAY0.md`
|
||||
5. `docs/ai/restart/FILAMENT-ONLY-CUTOVER-CHECKLIST.md`
|
||||
6. `docs/RUNBOOK-DISTRIBUZIONE-REMOTA-NETGESCON.md`
|
||||
7. `docs/distribuzione-update-netgescon.md`
|
||||
8. `Miki-Bug-workspace/AGENT_GIT.MD`
|
||||
|
||||
## Modifiche chiave gia presenti nel Day-0
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,9 @@
|
|||
$path = base_path('docs/NETGESCON-MODIFICHE.md');
|
||||
$raw = file_exists($path) ? file_get_contents($path) : "# Modifiche\n\nFile non trovato: {$path}\n";
|
||||
|
||||
$gitPath = base_path('docs/NETGESCON-GIT-AUTOCHANGELOG.md');
|
||||
$gitRaw = file_exists($gitPath) ? file_get_contents($gitPath) : "# Git Auto Changelog\n\nFile non trovato: {$gitPath}\nEsegui: `bash scripts/ops/netgescon-sync-git-changelog.sh`\n";
|
||||
|
||||
// Mini-render: sostituisce tag tipo [U], [P], [E], [E!] con un quadratino colorato.
|
||||
$replacements = [
|
||||
'[E!]' => '<span class="inline-flex items-center gap-2"><span class="inline-block h-3 w-3 rounded-sm bg-danger-500"></span><span class="font-mono">E!</span></span>',
|
||||
|
|
@ -40,6 +43,9 @@
|
|||
|
||||
$rawHtml = \Illuminate\Support\Str::markdown($raw);
|
||||
$rawHtml = str_replace(array_keys($replacements), array_values($replacements), $rawHtml);
|
||||
|
||||
$gitRawHtml = \Illuminate\Support\Str::markdown($gitRaw);
|
||||
$gitRawHtml = str_replace(array_keys($replacements), array_values($replacements), $gitRawHtml);
|
||||
@endphp
|
||||
|
||||
<x-filament::section>
|
||||
|
|
@ -47,5 +53,12 @@
|
|||
{!! $rawHtml !!}
|
||||
</div>
|
||||
</x-filament::section>
|
||||
|
||||
<x-filament::section>
|
||||
<div class="mb-2 text-sm font-semibold text-gray-700">Changelog Automatico da Git</div>
|
||||
<div class="prose max-w-none">
|
||||
{!! $gitRawHtml !!}
|
||||
</div>
|
||||
</x-filament::section>
|
||||
</div>
|
||||
</x-filament-panels::page>
|
||||
|
|
|
|||
119
scripts/ops/netgescon-sync-git-changelog.sh
Executable file
119
scripts/ops/netgescon-sync-git-changelog.sh
Executable file
|
|
@ -0,0 +1,119 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Generate an automatic Git-based changelog used by Filament support page.
|
||||
|
||||
REPO_DIR="$(pwd)"
|
||||
LEGACY_REPO_DIR="/home/michele/netgescon/netgescon-laravel"
|
||||
OUTPUT_FILE="docs/NETGESCON-GIT-AUTOCHANGELOG.md"
|
||||
LIMIT="180"
|
||||
|
||||
usage() {
|
||||
cat <<'EOF'
|
||||
Usage:
|
||||
bash scripts/ops/netgescon-sync-git-changelog.sh [options]
|
||||
|
||||
Options:
|
||||
--repo <path> Source repository for commit history (default: cwd)
|
||||
--legacy-repo <path> Legacy repo for long-term milestones (default: /home/michele/netgescon/netgescon-laravel)
|
||||
--output <path> Output markdown file (default: docs/NETGESCON-GIT-AUTOCHANGELOG.md)
|
||||
--limit <n> Number of commits to include (default: 180)
|
||||
|
||||
Example:
|
||||
bash scripts/ops/netgescon-sync-git-changelog.sh --repo /home/michele/netgescon/netgescon-day0
|
||||
EOF
|
||||
}
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--repo) REPO_DIR="$2"; shift 2 ;;
|
||||
--legacy-repo) LEGACY_REPO_DIR="$2"; shift 2 ;;
|
||||
--output) OUTPUT_FILE="$2"; shift 2 ;;
|
||||
--limit) LIMIT="$2"; shift 2 ;;
|
||||
-h|--help) usage; exit 0 ;;
|
||||
*) echo "Unknown option: $1" >&2; exit 1 ;;
|
||||
esac
|
||||
done
|
||||
|
||||
[[ -d "$REPO_DIR/.git" ]] || { echo "Repo not found: $REPO_DIR" >&2; exit 1; }
|
||||
|
||||
classify() {
|
||||
local msg="$1"
|
||||
local m
|
||||
m="$(printf '%s' "$msg" | tr '[:upper:]' '[:lower:]')"
|
||||
|
||||
if [[ "$m" =~ ^feat(\(.+\))?: ]]; then
|
||||
echo "Aggiunto"
|
||||
elif [[ "$m" =~ ^fix(\(.+\))?: ]]; then
|
||||
echo "Risolto"
|
||||
elif [[ "$m" =~ ^perf(\(.+\))?:|^refactor(\(.+\))?: ]]; then
|
||||
echo "Migliorato"
|
||||
elif [[ "$m" =~ ^docs(\(.+\))?: ]]; then
|
||||
echo "Documentazione"
|
||||
elif [[ "$m" =~ ^chore(\(.+\))?:|^ops(\(.+\))?: ]]; then
|
||||
echo "Operativo"
|
||||
else
|
||||
echo "Aggiornato"
|
||||
fi
|
||||
}
|
||||
|
||||
mkdir -p "$(dirname "$OUTPUT_FILE")"
|
||||
|
||||
{
|
||||
echo "# NetGescon Git Auto Changelog"
|
||||
echo
|
||||
echo "Generato automaticamente da Git il $(date '+%d/%m/%Y %H:%M')."
|
||||
echo
|
||||
echo "Repository sorgente: \
|
||||
\`$REPO_DIR\`"
|
||||
echo
|
||||
echo "## Milestone Storico"
|
||||
|
||||
if [[ -d "$LEGACY_REPO_DIR/.git" ]]; then
|
||||
first_line="$(git -C "$LEGACY_REPO_DIR" log --reverse --date=format:'%d/%m/%Y' --pretty=format:'%h|%ad|%s' | head -n 1 || true)"
|
||||
if [[ -n "$first_line" ]]; then
|
||||
IFS='|' read -r fh fd fs <<< "$first_line"
|
||||
echo "- Prima registrazione Git disponibile: **$fd** - \`$fh\` - $fs"
|
||||
fi
|
||||
|
||||
if git -C "$LEGACY_REPO_DIR" cat-file -e 1448a3d^{commit} 2>/dev/null; then
|
||||
cdate="$(git -C "$LEGACY_REPO_DIR" show -s --date=format:'%d/%m/%Y' --pretty=format:'%ad' 1448a3d)"
|
||||
cmsg="$(git -C "$LEGACY_REPO_DIR" show -s --pretty=format:'%s' 1448a3d)"
|
||||
echo "- Commit storico dichiarato trovato: **$cdate** - \`1448a3d\` - $cmsg"
|
||||
else
|
||||
echo "- Commit storico dichiarato \`1448a3d\`: non presente nel repository locale corrente (possibile storico esterno)."
|
||||
fi
|
||||
else
|
||||
echo "- Repository legacy non disponibile in: \`$LEGACY_REPO_DIR\`."
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "## Ultimi Commit Classificati"
|
||||
echo
|
||||
echo "| Data | Commit | Tipo | Messaggio |"
|
||||
echo "| --- | --- | --- | --- |"
|
||||
|
||||
git -C "$REPO_DIR" log --date=format:'%d/%m/%Y' --pretty=format:'%h|%ad|%s' -n "$LIMIT" | while IFS='|' read -r hash date msg; do
|
||||
kind="$(classify "$msg")"
|
||||
clean_msg="$(printf '%s' "$msg" | sed 's/|/-/g')"
|
||||
echo "| $date | \`$hash\` | $kind | $clean_msg |"
|
||||
done
|
||||
|
||||
echo
|
||||
echo "## Uso Operativo"
|
||||
echo
|
||||
echo "1. Aggiorna il changelog automatico:"
|
||||
echo
|
||||
echo "\`\`\`bash"
|
||||
echo "bash scripts/ops/netgescon-sync-git-changelog.sh"
|
||||
echo "\`\`\`"
|
||||
echo
|
||||
echo "2. Aggiorna changelog funzionale manuale (supporto/modifiche):"
|
||||
echo
|
||||
echo "\`\`\`bash"
|
||||
echo "bash scripts/ops/netgescon-add-modifica.sh --area \"<Area>\" --desc \"<Descrizione>\" --type U"
|
||||
echo "\`\`\`"
|
||||
} > "$OUTPUT_FILE"
|
||||
|
||||
echo "OK"
|
||||
echo "GENERATED: $OUTPUT_FILE"
|
||||
Loading…
Reference in New Issue
Block a user