From e1636a0e8808b35545730286d415455398ace013 Mon Sep 17 00:00:00 2001 From: saxster <119735920+saxster@users.noreply.github.com> Date: Sat, 2 May 2026 18:44:52 +0530 Subject: [PATCH] docs(skill): save_manifest at end of --update merge step (#545) 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 62992f977..468279891 100644 --- a/graphify/skill-copilot.md +++ b/graphify/skill-copilot.md @@ -827,6 +827,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 f04d71ff6..58cb22c42 100644 --- a/graphify/skill.md +++ b/graphify/skill.md @@ -942,6 +942,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.') " ```