Skip to content

docs(exporters): add the porting playbook and status table - #2295

Open
PathGao wants to merge 1 commit into
Graphify-Labs:v8from
PathGao:docs-exporters-migration
Open

docs(exporters): add the porting playbook and status table#2295
PathGao wants to merge 1 commit into
Graphify-Labs:v8from
PathGao:docs-exporters-migration

Conversation

@PathGao

@PathGao PathGao commented Jul 29, 2026

Copy link
Copy Markdown

Summary

graphify/exporters/ is being split out of export.py using the same facade pattern as graphify/extractors/ (base.py for shared symbols, per-format modules moved verbatim, export.py re-exporting each moved name behind # noqa: E402,F401). Three pieces already live there — to_htmlexporters/html.py, the FalkorDB/Neo4j push → exporters/graphdb.py, COMMUNITY_COLORSexporters/base.py — but unlike extractors/, the package had no MIGRATION.md, so the pattern in use and the remaining work were undocumented.

This adds graphify/exporters/MIGRATION.md: the porting invariants (verbatim moves, one exporter per PR, mandatory facade re-export, no exporter-imports-exporter) and a status table.

Still in export.py (verified they are real definitions, not already-migrated re-exports): to_json, to_cypher, to_obsidian, to_canvas, to_graphml, to_svg. callflow_html.py is noted as a separate concern (Mermaid HTML built from graphify-out/ files, not a graph object) and out of scope.

Docs-only; no code touched. Mirrors graphify/extractors/MIGRATION.md in structure so contributors porting either package follow the same steps.

🤖 Generated with Claude Code

graphify/exporters/ is being split out of export.py the same way
graphify/extractors/ is split out of extract.py — base.py holds the
shared palette, html.py and graphdb.py are moved verbatim behind
export.py facade re-exports — but unlike extractors/ it had no
MIGRATION.md, so the pattern and remaining work were undocumented.

Add the playbook (verbatim moves, one exporter per PR, mandatory
facade re-export, no exporter-imports-exporter) and a status table:
html/graphdb/base done; to_json, to_cypher, to_obsidian, to_canvas,
to_graphml, to_svg still in export.py. callflow_html.py is noted as
out of scope.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@graphify-labs graphify-labs Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).

Graphify reviewed this change.

Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).


Graphify review — findings

This PR adds a new documentation file, graphify/exporters/MIGRATION.md, that describes the process for splitting exporters out of the monolithic export.py into a per-format exporters/ package. It includes a status table tracking which exporters have been migrated, a set of stated invariants (e.g., verbatim moves, one exporter per PR, mandatory facade re-exports), and step-by-step migration instructions. The change is documentation-only and does not modify any code.

No blocking issues surfaced.

Analysis details — impact, health, verification

Impact & health

Graphify review

Impact — 5 functions depend on the 5 node(s) this change touches.

Health — grade A; no new coupling hotspots.

Verification — 5 functions in the blast radius were not formally verified this run (proofs are advisory here).

Gate & verification

graphify gate

PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.

Advisory (not blocking):

  • verification_scope: 5 function(s) in the blast radius were not formally verified this run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant