From fda06784ae58384cddd3b0121efcdbbb2a949641 Mon Sep 17 00:00:00 2001 From: saxster Date: Sat, 25 Apr 2026 10:31:38 +0530 Subject: [PATCH] docs(skill): save_manifest at end of --update merge step MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #538. The full-pipeline path's Step 9 already calls save_manifest, so the NEXT --update can diff against the full-rebuild's baseline. But the --update flow itself does NOT save the manifest after merging the incremental result. Consequence: a file deleted between --update #1 and --update #2 keeps reappearing in #2's deleted_files list (since the manifest still records its old mtime), generating a spurious ghost-node prune attempt every run. Add save_manifest(incremental['files']) at the end of the --update merge step in both skill.md and skill-copilot.md (the only two skill files carrying the merge step verbatim). The 'incremental' dict is already in scope from the prune block above; its 'files' key is the full current file list, which is exactly what save_manifest needs. Pure prompt edit — no code changes, no test impact. --- graphify/skill-copilot.md | 8 ++++++++ graphify/skill.md | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/graphify/skill-copilot.md b/graphify/skill-copilot.md index cfccee543..a18d8276b 100644 --- a/graphify/skill-copilot.md +++ b/graphify/skill-copilot.md @@ -823,6 +823,14 @@ if deleted: # Merge: new nodes/edges into existing graph G_existing.update(G_new) print(f'Merged: {G_existing.number_of_nodes()} nodes, {G_existing.number_of_edges()} edges') + +# Save manifest with the CURRENT full file list so the next --update +# diffs against today's filesystem state, not the prior --update's +# baseline. Without this, deleted files get reported as ghosts again +# on every subsequent --update until a full rebuild runs. +from graphify.detect import save_manifest +save_manifest(incremental['files']) +print('[graphify update] Manifest saved.') " ``` diff --git a/graphify/skill.md b/graphify/skill.md index 60d242209..10b2a56cc 100644 --- a/graphify/skill.md +++ b/graphify/skill.md @@ -931,6 +931,14 @@ merged_out = { } Path('graphify-out/.graphify_extract.json').write_text(json.dumps(merged_out)) print(f'[graphify update] Merged extraction written ({len(merged_out[\"nodes\"])} nodes, {len(merged_out[\"edges\"])} edges)') + +# Save manifest with the CURRENT full file list so the next --update +# diffs against today's filesystem state, not the prior --update's +# baseline. Without this, deleted files get reported as ghosts again +# on every subsequent --update until a full rebuild runs. +from graphify.detect import save_manifest +save_manifest(incremental['files']) +print('[graphify update] Manifest saved.') " ```