# ASF β Guida Primi Passi (Solo Frontend π¨)
> **ASF = Azurian Software Factory** Β· *SaaS Platform multi-tenant AI-native*
>
> **Motto**: *"From Requirement to Production β everything is contextualized, traceable and AI-accessible."*
>
> **Principio centrale**: ***Everything is an Artifact*** β requisiti, task, PR, commit, build, test, deploy, incidenti, analisi AI, segnalazioni di sicurezza: tutto Γ¨ un Artifact ASF collegato da Relazioni semantiche.
Questa guida usa **solo il browser** (frontend Next.js su `http://localhost:3000`) β zero curl, zero chiamate API a mano.
L'obiettivo Γ¨ insegnarti a **usare ASF dal punto di vista dell'utente finale**: navigare le pagine, filtrare i dati, ispezionare gli artifact nel loro contesto, marcare i code smell come risolti, sottomettere job asincroni da UI, interrogare l'AI sul grafo.
---
## 0. Prerequisito (1 comando solo per popolare dati)
ASF MVP non ha ancora (in questa release) le pagine "Create Organization / Create Project / Create Artifact / Create Relationship via form frontend.
Per avere dati reali con cui giocare nel browser, lancia **UNA SOLA VOLTA** questo comando dal terminale (seed demo):
```bash
cd /root/ASF && make seed-clean
```
Questo comando (wrapper `scripts/seed-demo.sh --clean --jobs`) fa per te:
1. Crea Organization demo + Project demo
2. Popola 21 artifact (Requirements / Task / PR / Build / Deploy / Test / Docs / Commits / Security findings / Incidents / Source files / Code smells)
3. Crea 9 relazioni semantiche
4. In coda 5 job echo (devops / testing / code analysis) per provare la pagina Jobs
5. Mostra un report finale: `Artifacts totali / Jobs counts / Graph nodesΒ·edges`
Poi avvia il frontend (se non giΓ attivo):
```bash
make start
```
Controlla che tutto sia vivo:
```bash
make status
```
Quando vedi `asf-core :8000 UP Β· asf-web :3000 UP Β· asf-worker ALIVE` puoi iniziare.
**Apri il browser**: `http://localhost:3000`
---
## π§ Concetti Chiave da Sapere (prima di cliccare)
```
Organization (il tuo Team) β Project β Artifact β Relationship β Artifact
```
- **Artifact (17 tipi)**: requirement, epic, story, task, architecture_decision, document, source_file, commit, pull_request, build, test, security_finding, deployment, release, runtime_event, incident, ai_analysis.
- **Relationship (12 predicati semantici)**: implements / verifies / generated_from / documented_by / deployed_as / caused_by / related_to β¦
- **Tutto Γ¨ cliccabile**: un nodo nel grafo β apre il dettaglio Context. Una riga in tabella β apre il dettaglio. Un badge ID β apre il dettaglio.
- **Isolamento per Tenant**: il frontend MVP usa dev-trust headers (t-demo-003 / u-mario) giΓ iniettati per te, quindi tutte le pagine mostrano solo i dati del tuo progetto demo.
---
## π Pagina 1: Overview Dashboard (`/`)
### Cosa vedi
9 cards in alto (da Bootstrap Prompt Β§9) + numeri veri:
| Card | Come interpretarla |
|---|---|
| Project Health % | Media pesata: req coverage + deploy success + security backlog. Oggi: **94.5%** β |
| Requirements count Β· per status | Quanti requisiti ci sono? Aperti / In progress / Chiusi |
| Implementation Coverage | Requisiti con β₯1 task collegati |
| Test Coverage | % PR / Deploy con β₯1 test che li "verifica" |
| Traceability Completeness | Quanti artifact hanno catene complete ReqβTaskβPRβTestβDeploy |
| Deployments last 7d | Quanti deploy Β· rate di successo |
| Active AI Jobs | Coda attiva: queued / running Β· usage ultima ora |
| Failed Builds last 7d | Build fallite |
| Security Findings OPEN | Conteggio per severitΓ : CRITICAL/red Β· HIGH/amber Β· MEDIUM/brand Β· LOW/neutral |
### Cosa fare
- **Click sul numero Projects**: ti salta alla pagina **Requirements** (prossima).
- **Click su Security Findings**: ti salta a **Code Analysis** per vedere gli smell aperti.
- **Click su Jobs**: vai a **Jobs (Activity)**.
---
## π Pagina 2: Requirements (`/requirements`)
### Header in alto
Titolo + 4 strumenti di filtraggio + 1 pulsante:
1. **Search field** (ricerca libera per external_id, title, content)
2. **Project filter** (tutti o 1 progetto specifico)
3. **Status filter** (open / in_progress / done / fixed / resolved)
4. **Type filter** (requirement / epic / story / task / document)
5. **π New Requirement** β β οΈ *placeholder UI*: in questa MVP non si puΓ² creare requirement da form. Usare il make seed per aggiungere nuovi record.
### Tabella Sticky Header
| Colonna | Cosa mostra |
|---|---|
| ID | external_id monospace (REQ-103) | badge + badge tipo (REQ / colorato |
| Title | titolo lungo artifact |
| Status | Badge tone (amber=open Β· brand=in_progress Β· green=fixed Β· blue=active) |
| Project | nome progetto NON-UUID (es. "ASF SaaS MVP" invece di UUID) |
| Source | product-board / jira / github / pytest / argo / etc. |
| Updated | data relativa "2h fa / 3d fa |
### Cosa fare (esercizio 2 clic)
1. Scrivi nella Search: `SSO` β filtra subito i requirements che matchano title/content.
2. Status filter = `Open`.
3. **Click sulla riga REQ-103**. β **ti porta automaticamente a Context Explorer con REQ-103 selezionato**.
Questo Γ¨ il pattern ASF: **ogni riga Γ¨ un link diretto al contesto.
---
## π Pagina 3: Context Explorer (`/context`) β IL CUORE DI ASF
Questa Γ¨ la pagina piΓΉ potente. **5 tab** per 5 modi diversi di vedere lo STESSO artifact selezionato.
### Layout
```
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Artifact Picker (SX) β Contenuto Destra (Tabs 1 di 5) β
β Search x project β β
β βββββββββββββββββββββββββββββββ β
β β - REQ-103 β selezionato ββ [Metadata] [Relationships] β
β β - TASK-101 ββ [Related 2-hop] [Graph β] β
β β - PR#88 ββ [History timeline] β
β β - BUILD-910 / DEP-44 ... ββ β
β βββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
### Tab 1 β Metadata (Informazioni statiche
- **Title Β· external_id Β· type Β· status Β· version Β· source Β· created_at Β· updated_at
- Griglia 2x2: Version / Source / Created / Updated
- Source preview `