Repository navigation
docs: state graphify path's directed default in the top-level help - #4229
wanjinhao1 wants to merge 1 commit into
Conversation
|
Thanks for the pull request, @wanjinhao1. A maintainer will review it soon. Want to talk it through while it is in review? Come join us on our Discord server. For longer-form discussion there is also GitHub Discussions. A couple of things that speed up review: make sure the test suite passes on Python 3.10 and 3.13, and that the change keeps extraction deterministic. |
There was a problem hiding this comment.
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Formal verification. PR-changed functions: 1/1 verified (0 proven, 1 may-equivalent, 0 distinguished) · 0 not verified.
Graphify review — findings
Documents the --directed and --undirected flags for path in the _run_cli help text. It notes that directed search is the default and the graph JSON's directed flag is not consulted.
No blocking issues surfaced.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 247 functions depend on the 24 functions this change touches.
Health — this change adds coupling hotspots:
- new:
main()— 102 callers, 3 callees - new:
dispatch_command()— 2 callers, 129 callees - new:
_refresh_stale_skills()— 25 callers, 4 callees - new:
_run_cli()— 6 callers, 7 callees - new:
_check_skill_version()— 9 callers, 3 callees - new:
test_poisoned_manifest_is_healed()— 0 callers, 6 callees
Verification — 247 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: 247 function(s) in the blast radius were not formally verified this run
Test selection
Test selection
23 of 344 test file(s) selected (7%) via static blast radius.
tests/test_affected_cli.py— impacttests/test_agents_platform.py— impacttests/test_codebuddy.py— impacttests/test_dedup_shrink_refuses_force_write.py— impacttests/test_devin.py— impacttests/test_explain_cli.py— impacttests/test_extract_cli.py— impacttests/test_global_add_tag_inference.py— impacttests/test_god_nodes_cli.py— impacttests/test_hollow_chunks_arm_shrink_guard.py— impacttests/test_incomplete_build_guard.py— impacttests/test_install.py— impacttests/test_install_references.py— impacttests/test_install_version_warning.py— impacttests/test_merge_chunks_validation.py— impacttests/test_multigraph_diagnostics.py— impacttests/test_no_dedup_flag.py— impacttests/test_path_cli.py— impacttests/test_query_cli.py— impacttests/test_query_induced_edges.py— impacttests/test_skill_auto_refresh.py— impacttests/test_skill_version_warning.py— impacttests/test_unverified_semantic_shrink.py— impact
Selection is safe under the controlled-regression assumption; always-run tests + a periodic full run are the backstops. Advisory — it never changes the check verdict.
Formal verification
No difference found (not proven): No behavior difference found in \_run\_cli (not a proof).
The verifier ran both versions of \_run\_cli on many inputs and saw identical behavior every time. Strong evidence the change is safe, but evidence, not a proof.
Guarantee: Empirical: differential testing (both versions run on many generated inputs). A divergence on an untested input remains possible, so this is 'no counterexample found', not 'proven equivalent'.
Note: An input the sampler did not try could still differ.
· 6 more finding(s) on lines outside this diff (see the check run).
|
Landed in v0.9.81 via an authorship-preserving cherry-pick, so your commit is on |
What does this PR do?
Fixes #3712.
graphify pathruns a directed search by default and never consults the graph.jsondirectedflag (deliberate per #2487), but the top-level help listed neither--directed/--undirectednor the default, whilediagnose multigraphdocuments the opposite default (follows the JSON flag). Reading the two side by side, a correct "no directed path found" result looks like a bug.This PR adds three help lines to the
pathentry ingraphify/__main__.pyso the flags and the directed default (and the fact that the JSONdirectedflag is not consulted) are visible without triggering the usage error.Type of change
Verification & Invariants
graphify pathon a"directed": falsegraph runs directed and prints "Re-run with --undirected", while-houtput forpathstated no default.directedflag is NOT consulted.How was this tested?
No code path changed, so the existing test suite is unaffected; grep confirms no test asserts on the
pathhelp block.Graphify-specific checklist
uv run python -m tools.skillgen --bless) when changing their source fragments. — N/A: only the hand-written CLI help in__main__.pychanged; no skill source fragments were touched.AI assistance disclosure: this change was authored with AI coding assistance on behalf of the account owner (@wanjinhao1).