6.6 KiB
Kill_LIFE Evidence Alignment - 2026-03-11
Scope
Fermer K-DA-006: verifier que la voie locale, la voie GitHub et la documentation parlent bien du meme evidence pack.
Mismatch trouve
.github/workflows/evidence_pack.ymlpointait verstools/evidence/validate_evidence_pack.py, fichier absent du repo.- La documentation parlait encore d'une structure generique
artifacts/<run-id>/...alors que les scripts actifs ecrivent deja dansdocs/evidence/. - Le contrat CI et le contrat docs n'avaient donc plus la meme sortie canonique.
Contrat canonique retenu
- La CI
evidence_pack.ymlutilise maintenantbash tools/bootstrap_python_env.shpuis./.venv/bin/python tools/auto_check_ci_cd.py. - La lane evidence
espforce maintenantKILL_LIFE_PIO_MODE=nativeet installeplatformiodans le venv repo-local. - Le rapport global attendu est
docs/evidence/ci_cd_audit_summary.json. - Chaque cible ecrit ses preuves dans
docs/evidence/<target>/:build.result.jsonoutest.result.jsonbuild.stdout.txtoutest.stdout.txtbuild.stderr.txtoutest.stderr.txtsummary.json
- L'artifact GitHub
evidence-packembarque un snapshot complet dedocs/evidence/, meme si le job echoue.
Verification locale
Commande executee:
./.venv/bin/python tools/auto_check_ci_cd.py
Observation du 2026-03-11:
compliance:rc=0linux: evidence pack present et verifie dansdocs/evidence/linux/esp: evidence pack partiel, car aucun artefact firmware n'etait disponible dans l'etat du run local
Cette execution confirme que le repo sait deja produire des preuves exploitables meme en cas d'echec partiel. La correction principale consistait donc a faire pointer la CI GitHub sur cette chaine reelle et a documenter la granularite des sorties.
Correctif complementaire du lot suivant:
ci_runtime.pydetecte aussiPlatformIOdans.venv/bin/pioet viapython -m platformio.collect_evidence.pyne valide plus un evidence pack si la derniere commande build/test a echoue, meme si des artefacts plus anciens existent encore dans.pio/.
Verification complementaire du 2026-03-11:
KILL_LIFE_PIO_MODE=native ./.venv/bin/python tools/auto_check_ci_cd.py
Resultat:
compliance:rc=0esp:rc=0, evidence pack complet dansdocs/evidence/esp/linux:rc=0, evidence pack complet dansdocs/evidence/linux/
Acceleration complementaire du 2026-03-13:
evidence_pack.ymlactive des caches separes pourpipetPlatformIO.- La version de
PlatformIOest figee danstools/compliance/requirements-platformio.txt. - Le bootstrap Python et la CI evidence s'appuient maintenant sur la meme source de versionnement, ce qui reduit les retelechargements et rend la lane plus stable.
Lisibilite operateur complementaire du 2026-03-13:
tools/auto_check_ci_cd.pyecrit maintenant un resume Markdown dansGITHUB_STEP_SUMMARYquand le job tourne sur GitHub Actions.- Le Step Summary reprend
compliance,esp,linux, puis le detail des sous-stepsbuild/test -> collect -> verify. - Le JSON
docs/evidence/ci_cd_audit_summary.jsonreste la source canonique; le Step Summary est une projection lisible pour la review.
Sidecar local complementaire du 2026-03-13:
- le meme rendu Markdown est maintenant ecrit dans
docs/evidence/ci_cd_audit_summary.md - l'artifact
evidence-packembarque donc une version lisible sans passer par l'UI GitHub Actions
Focus erreurs complementaire du 2026-03-13:
- le rendu Markdown ajoute maintenant une section
Focus failuresquandcomplianceou une lane cible sort en non-zero - cette section remonte la lane, les sous-steps en echec et le premier signal utile avant le detail complet
Compaction des chemins complementaire du 2026-03-13:
- le rendu Markdown compresse maintenant les chemins absolus du repo en chemins relatifs, par exemple
docs/evidence/esp - le JSON
docs/evidence/ci_cd_audit_summary.jsonreste inchange; seule la projection Markdown est epuree pour la lecture humaine
Compaction des signaux complementaire du 2026-03-13:
- les signaux listeux du type
Evidence pack trouve ... [artifacts]sont maintenant resumes en compte court, par exemple4 artefacts - le fallback garde une troncature legere pour les lignes anormalement longues, sans toucher au JSON source
Resume artefacts dedie complementaire du 2026-03-14:
- le rendu Markdown ajoute maintenant un bloc
Artifact summaryentre l'etat global des lanes et le detail par step - ce bloc est derive du report courant et sort, par lane, le statut evidence, le nombre d'artefacts et un echantillon court
- la colonne
Signalredevient plus lisible: le detail artefact reste dans le bloc dedie plutot que dans chaque ligneverify_evidence
Precision lane degradee complementaire du 2026-03-14:
Artifact summarylit maintenantdocs/evidence/<target>/summary.jsonpour remonter lesrequired_fileset la listemissingquand une lane evidence n'est pasok- le rendu reste compact sur les lanes vertes (
3 files,-) et ne s'etend qu'au moment ou une review operateur a besoin de voir ce qui manque vraiment K-DA-018se ferme quand ce bloc distingue explicitementSource artifactsetEvidence files, pour ne plus lirerequired_filescomme un inventaire d'artefacts build/test
Detection de drift complementaire du 2026-03-14:
Artifact summarymarque maintenantDrift = summary oksiverify_evidencecasse alors quesummary.jsonannonce encorestatus=ok- ce cas vise les artefacts supprimes ou invalides apres collecte: la colonne
Missingmontre ce qui manque, la colonneDriftrend visible que le resume canonique n'avait pas encore capte l'ecart
Projection drift plus explicite du 2026-03-14:
- quand
Drift = summary ok, le rendu Markdown recalcule aussiArtifactsetSampledepuissummary.json.artifactsmoins les elementsmissing - on voit donc a la fois ce qui manque et ce qui reste present, sans aller lire le JSON canonique a la main
Consequence operateur
- Un echec CI ne doit plus masquer l'evidence pack: les logs et resumes restent telechargeables via l'artifact
evidence-pack. - La doc locale et la doc GitHub parlent maintenant des memes chemins.
- Le rendu drift montre maintenant aussi les artefacts encore presents, en plus des manquants.
Next lot
K-DA-015est ferme par l'expositionrequired_files/missingdansArtifact summary.K-DA-016est ferme par la colonneDriftdu rendu Markdown evidence.K-DA-017est ferme par le recalcul deArtifacts/Sampledepuissummary.json.artifactsquand un drift est detecte.K-DA-018est ferme par la separation expliciteSource artifacts/Evidence filesdansArtifact summary.