fix(registry): break all 6 investing depends_on cycles (DAG acyclic again) - #259
Merged
Conversation
…gain) Resolve every CRITICAL depends_on_cycle reported by full_diagnostic_scan by enforcing the directional-DAG convention (STYLE_GUIDE #6/#7), following the precedent of 3cd9717 and 7082150: orient each mutual pair toward the more-foundational skill (higher in-degree) and drop the redundant reverse. Fixed at source in scripts/wire-investing-graph.py DEPENDENCY_MAP (the generator that owns investing edges), then propagated to data/registry.json via --apply, which also rebuilt the referenced_by reverse index. 11 edges dropped: - macro-cycles -> monetary-regime, fiscal-regime (macro-cycles is the sink) - market-psychology -> reflexivity-theory, sentiment-signals - sentiment-signals -> alt-data-monitoring - tail-risk -> correlation-regimes, position-sizing (core risk primitive) - factor-exposure -> equities - intrinsic-value -> quality-compounders - event-driven -> insider-signals, spinoffs-restructuring Zero relationship loss: every dropped direction keeps its reverse edge or is already documented in the source skill's Related Skills prose. No SKILL.md edits needed — sync-registry's prose harvester only re-adds cross-domain refs, and all 11 edges are intra-investing. Recalibrated composite scores for the 8 skills whose connectivity changed (-4 to -6 pts; 2 reclassified healthy -> warning) to keep CI's idempotency check green. NOTE: scripts/patch_mentor_suite.py was NOT run — it is currently unsafe (its DEPS table has drifted from the registry since the cycle cleanups and rerunning rewrites all 43 mentor/career lists; see the NOTE in that file). Verified: wire-investing tests 3/3, sync-registry in sync, wire-all-domains 0 modifications, recalibrate idempotent, scan TOTAL ISSUES: 0. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
full_diagnostic_scan.pyreported 6 CRITICALdepends_oncycles, all in the investing domain. This PR dissolves all of them by enforcing the directional-DAG convention (STYLE_GUIDE anti-patterns #6/#7), following the precedent of 3cd9717 and 7082150: orient each mutual pair toward the more-foundational skill (higher in-degree in the dependency map) and drop the redundant reverse edge.Per the "durable edge removal needs registry + generator both" rule, the fix lands at the source —
scripts/wire-investing-graph.py'sDEPENDENCY_MAP, the generator that owns investing edges — and is propagated todata/registry.jsonby running the generator with--apply, which also rebuilds thereferenced_byreverse index authoritatively.Edges dropped (11)
Zero relationship loss: every dropped direction either retains its kept reverse edge or is already documented in the source skill's
## Related Skillsprose. No SKILL.md edits needed —sync-registry.py's prose harvester only re-adds cross-domain backticked refs, and all 11 dropped edges are intra-investing.Composite scores recalibrated for the 8 skills whose connectivity changed (−4 to −6 pts; 2 reclassified healthy → warning) so CI's idempotency check stays green.
Known issue surfaced (not fixed here)
scripts/patch_mentor_suite.pyis currently not a safe re-run: its DEPS table has drifted from the registry since the cycle cleanups (its own NOTE comment documents this), and running it unconditionally rewrites all 43 mentor/careerdepends_onlists, re-adding deliberately-removed edges. It was run once during this work and its write was fully reverted before committing. Reconciliation is tracked as a separate follow-up task.Verification
scripts/test_wire_investing_graph.py: 3/3 passingscripts/sync-registry.py: registry in sync, no driftscripts/wire-all-domains.py: 0 modificationsscripts/recalibrate_scores.py --dry-run: "No score changes needed" (idempotent)scripts/full_diagnostic_scan.py: TOTAL ISSUES: 0 (was 6 CRITICAL)🤖 Generated with Claude Code