Skip to main content

workflow-ma-link-tracing

WHAT: Dependency-graph construction and circular-reference assessment for financial model worksheets — directed cell/formula link tracing, cycle detection, and classification of legitimate vs pathological circular references. WHEN: Invoke when a financial model is presented for audit and the reviewer needs to map which cells feed which, detect unintended formula cycles, or confirm that iterative-calculation cycles (interest-expense circularity, revolver draw circularity) converge correctly.

ソース情報

リポジトリ
fall-development-rob/corp_finance
ソースの最終更新活動
2026年5月11日 14:10
検出された SKILL.md の言語
英語
スター
8
フォーク
2

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
workflow-ma-link-tracing
description
WHAT: Dependency-graph construction and circular-reference assessment for financial model worksheets — directed cell/formula link tracing, cycle detection, and classification of legitimate vs pathological circular references. WHEN: Invoke when a financial model is presented for audit and the reviewer needs to map which cells feed which, detect unintended formula cycles, or confirm that iterative-calculation cycles (interest-expense circularity, revolver draw circularity) converge correctly.
# Model Audit — Link Tracing and Circular Reference Assessment ## What this skill covers Construction of the directed dependency graph for a financial model, identification of all formula cycles (circular references), and classification of each cycle as either a legitimate (convergent) model mechanic or a pathological (non-convergent or unintended) error. ## Workflow ### Step 1 — Build the dependency map For every formula cell in the model: - Record all direct precedent cells (inputs to the formula). - Record the formula string (for display in the output report). - Label each cell with its sheet name and cell address (`Sheet!A1` notation). Construct a directed acyclic graph (DAG) of all non-circular dependencies. The output is an adjacency list suitable for cycle detection. ### Step 2 — Detect circular references Apply a depth-first search (DFS) with cycle tracking on the full dependency graph. Every back-edge marks a circular reference. Record: - The full cycle path (`Sheet1!B10 → Sheet2!C5 → Sheet1!B10`). - The cycle length (number of edges). - All cells participating in the cycle. ### Step 3 — Classify each cycle | Cycle type | Description | Disposition | |------------|-------------|-------------| | Legitimate — interest expense | Interest expense → net income → cash → debt balance → interest expense | Acceptable if iterative calculation is ON and converges in ≤10 iterations | | Legitimate — revolver draw | Revolver draw → ending cash → revolver draw | Acceptable if iterative calculation is ON and converges in ≤10 iterations | | Pathological — non-convergent | Any cycle where iteration does not reach a stable solution within 10 iterations | Critical finding | | Pathological — unintended | Revenue → cost → revenue; any business-logic cycle with no modelling rationale | Critical finding | ### Step 4 — Verify convergence of legitimate cycles For each legitimate cycle, check that: - The model's workbook has iterative calculation enabled. - The maximum iteration count is ≥5 (recommended: 100). - The maximum change threshold is ≤0.001. - Manually stepping through 5 iterations shows a converging sequence. Non-convergence within 10 iterations is a critical finding regardless of cycle classification. ### Step 5 — Produce the dependency map summary Output: - Total cells in the model, formula cells vs hard-coded cells. - Count of distinct circular references. - Per-cycle table: path, length, classification, convergence status, severity. - Flattened precedent list for each output cell (show all upstream inputs). ## Output format ``` LINK-TRACE REPORT ----------------- Model: [name / file reference] Total formula cells: [n] Total circular references detected: [n] CYCLE TABLE | Cycle ID | Path | Length | Classification | Converges? | Severity | |----------|------|--------|----------------|------------|----------| | C1 | Sheet1!B10 → Sheet2!C5 → Sheet1!B10 | 2 | Legitimate (interest) | Yes | — | | C2 | Rev!D8 → IS!C12 → Rev!D8 | 2 | Legitimate (revolver) | Yes | — | | C3 | Rev!E8 → Rev!E9 → Rev!E8 | 2 | Pathological (unintended) | N/A | CRITICAL | PRECEDENT MAP (selected output cells) | Output cell | All upstream inputs | |-------------|---------------------| | IS!C20 (Net Income) | IS!C5, IS!C8, IS!C14, Tax!B3, ... | ``` ## Quality gates - Every formula cell has a recorded precedent list — no cells skipped. - Every cycle is classified; no cycle is left as "unknown." - Legitimate cycles have convergence confirmed; non-confirmation is a major finding. - Pathological cycles are always critical. ## Related skills - `workflow-ma-formula-consistency` — once the link map is built, consistency checks run across formula rows - `workflow-ma-hardcode-detection` — hardcodes are identified from the same cell inventory used here - `workflow-ma-three-statement-tieout` — the articulation check uses the dependency map to confirm IS/BS/CF linkages - `workflow-ma-rederivation` — re-derivation uses corp-finance-mcp tools as ground truth after link-tracing confirms model topology ## Routing **Primary agent:** `cfa-chief-analyst`
GitHubで見る