Prompt file imported from zekiriabd/SDD-Pro (
.codex/prompts/sdd-reverse-inventory.md). Fill in{{arguments}}before use. Copyright stays with the author.
Arguments: {{arguments}}
/sdd-reverse-inventory {LegacyProject} [--use-cache] [--json]
Rôle
Lancer la Phase 1 : produire inventory.{md,json} + db-schema.{md,json} + language-detected.json sous workspace/old/{LegacyProject}/.sys/. Bloquant pour /sdd-reverse {U-N} (Phase 3).
Args
| Arg | Type | Description |
|---|---|---|
{LegacyProject} |
string requis | Nom du sous-dossier sous workspace/old/ |
--use-cache |
flag | Saute le scan si inventory.json existant + valide ADV-23 (schemaVersion + _allocatedNames) |
--json |
flag | Émet le rapport final en JSON sur stdout (machine-readable) |
Pré-conditions
workspace/old/{LegacyProject}/.sys/doit exister (sinon →/sdd-reverse-init {P}d'abord)workspace/old/{LegacyProject}/contient des fichiers source non-binaires.sdd/python/sdd_reverse/language_signatures.ymlprésent (sinon → erreur framework, problème d'install)
Si manquant → STOP + ERROR [REVERSE_NO_SOURCE] ou [INFRA_BLOCKED].
Actions
-
Spawn unique
Agent(reverse-inventory)avec args ={LegacyProject} -
L'agent vérifie préconditions + invoque
python .sdd/python/sdd_reverse_scripts/reverse_inventory.py --project workspace/old/{LegacyProject}(+--use-cache/--refresh/--jsonsi transmis — invocation canonique par chemin de fichier, C6) -
Le script écrit les 9 artefacts
.sys/*(recompte audit 2026-08-30 —reverse_inventory.pyécrit aussi les 4 artefacts L0/L1) :inventory.json— unités fonctionnelles U-N (fingerprint stable) + evidence + allocationsinventory.md— rendu FR (enrichi ensuite par l'agent, étape 4)code-graph.json— graphe de classes symbol-level + rôles (L0)data-access.json— SQL inline + appels de procédures stockées + params (L1)config.json— connection strings, secrets masqués (L1)dependencies.json— NuGet/.csproj/PackageReference + assembly refs + DLLs bin (L1)db-schema.json— schéma DB basique déduit du codedb-schema.md— rendu markdown du schémalanguage-detected.json— langages détectés + confidence caps appliqués
dependencies.jsonetconfig.jsonsont des pré-conditions de/sdd-reverse-crosscut(FEATs transversales Librairies + Database). -
L'agent enrichit
inventory.mdFR avec résumé exécutif + regroupements sémantiques -
Émission ligne chat finale
[REVERSE] {LegacyProject} : N unités, M entités, langage primaire {lang}. (15%)
Mode --use-cache
Si inventory.json existant et passe la gate ADV-23 (schemaVersion == 1 ET _allocatedNames ET _featAllocations présents) → le script saute le scan complet et l'agent régénère uniquement le markdown FR. Sinon refresh forcé + INFO [REVERSE_INVENTORY_SCHEMA_STALE].
Sortie
workspace/old/{LegacyProject}/.sys/
├── inventory.{md,json}
├── code-graph.json (L0)
├── data-access.json (L1)
├── config.json (L1 — pré-condition /sdd-reverse-crosscut)
├── dependencies.json (L1 — pré-condition /sdd-reverse-crosscut)
├── db-schema.{md,json}
└── language-detected.json
Voir .sdd/docs/reverse-engineering-workflow.md §4.1 + §5 + §6 (contrats inter-phases).
Anti-derive
- Aucun spawn d'autre agent que
reverse-inventory - Read-only sur le legacy, write uniquement sous
.sys/ - Phase 3 NE DOIT PAS être lancée automatiquement (le Tech Lead arbitre quelles unités extraire et dans quel ordre)
Idempotence
Re-lancer écrase les .json (overwrite via atomic_write_local). U-N IDs préservés via fingerprint full+core (ADV-1).
