chore: init project structure

Discovery synthesis, docs tree, Python src layout, CLAUDE.md, pyproject.toml.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
sylvain
2026-03-10 18:21:33 +01:00
parent 11e5def11c
commit 4e72ddc32f
14 changed files with 324 additions and 1 deletions

48
docs/README.md Normal file
View File

@@ -0,0 +1,48 @@
<!-- Type: reference (Diataxis). Style: index de navigation, structure de la doc. -->
# Documentation — gitea-dashboard
## Structure
```
docs/
├── project/ # Pilotage projet
│ ├── descriptif.md # Brief initial (etape 3)
│ └── demandes.md # Inbox features (/workflow demande)
├── technical/ # Architecture et decisions
│ ├── ARCHITECTURE.md # Architecture technique (etape 6, architect)
│ ├── decisions.md # ADR (Architecture Decision Records)
│ └── research.md # Resultats de recherche (etape 4, researcher)
├── discovery/ # Livrables discovery (etape 1, majeur uniquement)
│ └── synthesis.md # Synthese d'interview
├── plans/ # Plans de version (etape 6)
│ └── vX.Y.Z-plan.md # Un plan par version (architect)
├── guides/ # Documentation utilisateur (optionnel)
│ └── [sujet].md # deployment.md, api-usage.md, getting-started.md
├── dev/ # Notes de developpement (optionnel)
│ └── [sujet].md # setup.md, conventions.md, troubleshooting.md
└── README.md # Ce fichier
```
## Conventions
- **MAJUSCULES.md** : documents officiels et de pilotage (ARCHITECTURE, CHANGELOG)
- **minuscules.md** : documents de travail et notes (descriptif, demandes, research, decisions)
- **Nommage fichiers** : minuscules, tirets pour separer les mots (deployment.md, api-usage.md)
- Les dossiers `guides/` et `dev/` sont crees quand le besoin apparait
- Chaque document a un emplacement unique — pas de doc ailleurs que dans cette arborescence
- **Roadmap** : Gitea milestones (pas de ROADMAP.md local)
- **Backlog** : Gitea issues avec label `backlog` (pas de BACKLOG.md local)
## Ou mettre ma doc ?
| Type de doc | Ou |
|-------------|-----|
| Guide utilisateur (install, usage, config) | `guides/` |
| Notes dev (setup, conventions, debug) | `dev/` |
| Architecture, ADR, recherche | `technical/` |
| Brief, demandes | `project/` |
| Plan de version | `plans/` |
| Synthese discovery | `discovery/` |
| Roadmap, jalons | Gitea milestones |
| Backlog, idees, dette technique | Gitea issues (label `backlog`) |

View File

@@ -0,0 +1,51 @@
<!-- Type: explanation (Diataxis). Style: discursif, synthese des besoins et decisions, produit par /forge --discovery. -->
# Discovery Synthesis — gitea-dashboard
## Contexte
Besoin d'un outil de supervision rapide pour l'instance Gitea personnelle.
Actuellement, il faut naviguer dans l'interface web repo par repo pour voir
l'etat des issues, releases et milestones. Un dashboard CLI permet d'avoir
une vue d'ensemble en une commande.
## Utilisateurs cibles
Utilisateur unique (admin de l'instance Gitea). Usage en terminal, execution
ponctuelle pour avoir un snapshot de l'etat des repos.
## Besoins identifies
### Fonctionnels
- Lister tous les repos de l'utilisateur
- Afficher le nombre d'issues ouvertes par repo
- Afficher la derniere release par repo (tag, date)
- Afficher l'etat des milestones (ouvertes, progression)
- Formatage terminal lisible et structure (tableaux, couleurs)
### Non-fonctionnels
- Temps de reponse acceptable (< 10s pour une dizaine de repos)
- Code maintenable, teste, structure proprement
- Configuration externalisee (URL, token)
## Contraintes
- API Gitea REST a http://192.168.0.106:3000
- Authentification par token API (variable d'environnement)
- Python 3.x avec requests et rich
- Affichage unique (pas de mode watch/refresh)
- Pas de filtre par owner/org en v1 — tous les repos
## Decisions prises
| Decision | Justification |
|----------|---------------|
| Python + requests | Stack simple, maitrisee, suffisante pour des appels REST |
| rich pour le formatage | Tableaux, couleurs, mise en page terminal de qualite |
| Token en variable d'env | Securite : pas de secret dans le code ou les fichiers |
| Pas de filtre en v1 | Nombre de repos limite, simplifier le scope initial |
## Questions ouvertes
- Pagination API : verifier si l'API Gitea pagine les resultats (a traiter en recherche step 4)
- Gestion des repos sans release ou sans milestone (affichage gracieux)

23
docs/project/demandes.md Normal file
View File

@@ -0,0 +1,23 @@
<!-- Type: reference (Diataxis). Style: inbox format libre, traite par /workflow demande. -->
# Demandes — gitea-dashboard
> **Note** : ce projet utilise Gitea, les issues Gitea sont la source de verite.
> Ce fichier sert de fallback.
> Utiliser `/workflow demande` pour traiter les demandes.
## En attente de classification
-
## Classifiees — en attente
-
## Terminees
-
## Demandes ecosystem
-

View File

@@ -0,0 +1,50 @@
<!-- Type: reference (Diataxis). Style: factuel, fige apres creation. Capture l'intention originale. -->
# Descriptif — gitea-dashboard
## Contexte
Supervision de l'instance Gitea personnelle (192.168.0.106:3000).
Pas de vue d'ensemble disponible sans naviguer repo par repo dans l'interface web.
## Objectifs
- Afficher en une commande l'etat de tous les repos Gitea
- Visualiser les issues ouvertes, dernieres releases et milestones
- Fournir un output terminal lisible et structure
## Perimetre
### Inclus
- Connexion API Gitea avec authentification token
- Liste de tous les repos de l'utilisateur
- Nombre d'issues ouvertes par repo
- Derniere release par repo (tag + date)
- Etat des milestones (nom, progression open/closed)
- Formatage rich (tableaux, couleurs)
### Exclus
- Interface web ou GUI
- Mode watch / rafraichissement automatique
- Filtrage par owner/organisation
- Modification de donnees (lecture seule)
- Notifications ou alertes
## Utilisateurs cibles
Administrateur unique de l'instance Gitea. Usage terminal.
## Contraintes
- Python 3.x
- Dependances : requests, rich
- API Gitea REST v1
- Token en variable d'environnement (GITEA_TOKEN)
- Instance locale : http://192.168.0.106:3000
## References
- API Gitea : https://gitea.io/en-us/ (documentation Swagger disponible sur l'instance)
- Rich : https://rich.readthedocs.io/

View File

@@ -0,0 +1,5 @@
<!-- Type: reference (Diataxis). Style: factuel, exhaustif, structure par le code. Pas de tutoriel ici. -->
# Architecture — gitea-dashboard
<!-- A completer a l'etape 6 par l'architect -->

View File

@@ -0,0 +1,18 @@
<!-- Type: reference (Diataxis). Style: factuel, format ADR Nygard (Contexte/Decision/Consequences). Jamais supprimer un ADR. -->
# Architecture Decision Records — gitea-dashboard
## ADR-001 : Stack Python + requests + rich
**Date** : 2026-03-10
**Statut** : accepte
**Contexte** : Besoin d'un outil CLI de dashboard pour Gitea. Choix du langage et des librairies.
**Decision** : Python avec requests pour les appels API et rich pour le formatage terminal.
**Consequences** :
- Stack simple et maitrisee par l'utilisateur
- Pas de framework CLI lourd (argparse suffit si besoin)
- rich offre des tableaux et couleurs sans configuration complexe
- Dependance a requests (pas de client async, acceptable pour un affichage unique)

View File

@@ -0,0 +1,5 @@
<!-- Type: explanation (Diataxis). Style: discursif, comparaisons argumentees, sources citees. -->
# Recherche technique — gitea-dashboard
<!-- A completer a l'etape 4 par le researcher -->