Skip to content

Remove faulty GitHub Actions Workflow for Python, fix: resolve explain-ambiguity, fix(ruby): resolve compact syntax mixin targets and prevent phantom concern hubs. - #1394

Open
FolatheDuckofDuckingburg wants to merge 27 commits into
Graphify-Labs:v8from
FolatheDuckofDuckingburg:v8

Merge pull request #5 from FolatheDuckofDuckingburg/jules-12051165530…

7a2c840
Select commit
Loading
Failed to load commit list.
Graphify Labs / Graphify succeeded Jul 28, 2026 in 0s

Graphify — looks good

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

Details

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 pull request rolls back the CHANGELOG to move the previously documented 0.9.13/0.9.12 release entries into an "Unreleased" section, and touches a wide range of extractor, analysis, export, and skill-generation code along with their corresponding tests. The changed surface spans multiple language extractors (Fortran, C#, Kotlin, Ruby/rake, Bash, etc.), graph build/reconciliation logic, HTML/Canvas/viz export, security/path validation, and skillgen fragment/expected-output files, plus a Persian translation doc update. Given the truncated diff, the changes appear to be a broad rework across extraction, serving, and rationale-generation areas rather than a single feature. A reviewer should verify the CHANGELOG restructuring is intentional and check that the symbol renames and test updates are consistent across the affected modules.

No blocking issues surfaced.

Analysis details — impact, health, verification

Impact & health

graphify review

Impact — 5735 function(s) in the blast radius of 4710 changed node(s).

Health — regressions introduced by this change:

  • worsened (Ca·Ce 240→7011): main() (Ca=57 Ce=123) — fans out to 123 callees (efferent coupling); 57 callers depend on it (afferent coupling)
  • new offender: _extract_generic() (Ca=18 Ce=14) — fans out to 14 callees (efferent coupling); 18 callers depend on it (afferent coupling)
  • new offender: to_html() (Ca=17 Ce=8) — fans out to 8 callees (efferent coupling); 17 callers depend on it (afferent coupling)
  • new offender: install() (Ca=12 Ce=11) — fans out to 11 callees (efferent coupling); 12 callers depend on it (afferent coupling)
  • new offender: _resolve_js_module_path() (Ca=29 Ce=4) — 29 callers depend on it (afferent coupling)
  • new offender: extract_objc() (Ca=26 Ce=4) — 26 callers depend on it (afferent coupling)
  • new offender: codebuddy_install() (Ca=21 Ce=4) — 21 callers depend on it (afferent coupling)
  • new offender: extract_bash() (Ca=19 Ce=4) — 19 callers depend on it (afferent coupling)
  • new offender: gemini_install() (Ca=11 Ce=6) — fans out to 6 callees (efferent coupling); 11 callers depend on it (afferent coupling)
  • new offender: extract_fortran() (Ca=14 Ce=4) — 14 callers depend on it (afferent coupling)
  • new offender: extract_json() (Ca=13 Ce=4) — 13 callers depend on it (afferent coupling)
  • new offender: _collect_js_symbol_resolution_facts() (Ca=2 Ce=25) — fans out to 25 callees (efferent coupling)
  • new offender: extract_go() (Ca=16 Ce=3) — 16 callers depend on it (afferent coupling)
  • new offender: extract_julia() (Ca=15 Ce=3) — 15 callers depend on it (afferent coupling)
  • new offender: extract_rust() (Ca=15 Ce=3) — 15 callers depend on it (afferent coupling)
  • new offender: claude_install() (Ca=15 Ce=3) — 15 callers depend on it (afferent coupling)
  • new offender: extract_dm() (Ca=14 Ce=3) — 14 callers depend on it (afferent coupling)
  • new offender: extract_pascal() (Ca=14 Ce=3) — 14 callers depend on it (afferent coupling)
  • new offender: extract_powershell() (Ca=14 Ce=3) — 14 callers depend on it (afferent coupling)
  • new offender: _project_uninstall() (Ca=3 Ce=13) — fans out to 13 callees (efferent coupling)
  • new offender: _project_install() (Ca=3 Ce=12) — fans out to 12 callees (efferent coupling)
  • new offender: extract_verilog() (Ca=9 Ce=4) — 9 callers depend on it (afferent coupling)
  • new offender: _copy_skill_file() (Ca=12 Ce=3) — 12 callers depend on it (afferent coupling)
  • new offender: _agents_install() (Ca=7 Ce=5) — 7 callers depend on it (afferent coupling)
  • new offender: extract_apex() (Ca=14 Ce=2) — 14 callers depend on it (afferent coupling)
  • new offender: codebuddy_uninstall() (Ca=14 Ce=2) — 14 callers depend on it (afferent coupling)
  • new offender: extract_dmm() (Ca=6 Ce=4) — 6 callers depend on it (afferent coupling)
  • worsened (Ca·Ce 0→21): _agents_install() (Ca=21 Ce=1) — 21 callers depend on it (afferent coupling)
  • new offender: extract_markdown() (Ca=10 Ce=2) — 10 callers depend on it (afferent coupling)
  • new offender: extract_dmf() (Ca=6 Ce=3) — 6 callers depend on it (afferent coupling)
  • new offender: _resolve_js_import_target() (Ca=6 Ce=3) — 6 callers depend on it (afferent coupling)
  • new offender: extract_delphi_form() (Ca=9 Ce=2) — 9 callers depend on it (afferent coupling)
  • new offender: extract_sln() (Ca=9 Ce=2) — 9 callers depend on it (afferent coupling)
  • new offender: claude_uninstall() (Ca=9 Ce=2) — 9 callers depend on it (afferent coupling)
  • new offender: extract_dmi() (Ca=4 Ce=4) — high coupling complexity (Ca·Ce = 16)
  • new offender: extract_dart() (Ca=8 Ce=2) — 8 callers depend on it (afferent coupling)
  • new offender: extract_lazarus_form() (Ca=8 Ce=2) — 8 callers depend on it (afferent coupling)
  • new offender: _remove_skill_file() (Ca=16 Ce=1) — 16 callers depend on it (afferent coupling)
  • new offender: _agents_uninstall() (Ca=7 Ce=2) — 7 callers depend on it (afferent coupling)
  • new offender: gemini_uninstall() (Ca=7 Ce=2) — 7 callers depend on it (afferent coupling)
  • new offender: uninstall_all() (Ca=1 Ce=13) — fans out to 13 callees (efferent coupling)
  • new offender: extract_sql() (Ca=4 Ce=3) — high coupling complexity (Ca·Ce = 12)
  • new offender: _resolve_tsconfig_alias() (Ca=4 Ce=3) — high coupling complexity (Ca·Ce = 12)
  • worsened (Ca·Ce 0→12): _install() (Ca=12 Ce=1) — 12 callers depend on it (afferent coupling)
  • new offender: _collect_python_symbol_resolution_facts() (Ca=1 Ce=10) — fans out to 10 callees (efferent coupling)
  • new offender: _extract_pascal_regex() (Ca=1 Ce=10) — fans out to 10 callees (efferent coupling)
  • new offender: _js_extra_walk() (Ca=1 Ce=6) — fans out to 6 callees (efferent coupling)
  • new offender: walk() (Ca=0 Ce=41) — fans out to 41 callees (efferent coupling)
  • new offender: walk_calls() (Ca=0 Ce=12) — fans out to 12 callees (efferent coupling)
  • new offender: walk() (Ca=0 Ce=6) — fans out to 6 callees (efferent coupling)
  • new offender: walk() (Ca=0 Ce=6) — fans out to 6 callees (efferent coupling)
  • new offender: walk() (Ca=0 Ce=6) — fans out to 6 callees (efferent coupling)

Verification — 5735 function(s) need re-proving (callee-first):
tools_skillgen_gen_write_artifacts → tools_skillgen_gen_v8_baseline_ref → tools_skillgen_gen_v8_available → tools_skillgen_gen_render_frontmatter → tools_skillgen_gen_normalise → tools_skillgen_gen_read_fragment → tools_skillgen_gen_render_core → tools_skillgen_gen_render_agents_md_hooks → tools_skillgen_gen_platform_reference_sources → tools_skillgen_gen_render …

Gate & verification

graphify gate

PASS — objectively clean (no health regressions, tests not run — proofs not enforced this run (re-run with --prove to verify the blast radius)). Grounded, not self-assessed.

Advisory (not blocking):

  • verification_scope: 5726 function(s) in blast radius — re-run with --prove to formally verify them