Skip to content

engine PR 2: per-file dynamism count replaces the flat irc term (child of #2716) #2719

Closed

Description

@squid-protocol

Child of #2716; after #2718.

After PR 1, irc is still a flat per-language number (0–4 from the strictness table). It is summed into six formulas in six different units — 5 pseudo-branches in _calc_cog_load, 5 attack hits in _calc_safety, 2.5 debt items in _calc_tech_debt, 5 API surfaces in _calc_documentation, +0.5 density points in _calc_concurrency, +0.75 in _calc_state_flux.

The thing that term was standing in for is countable per file: high_risk_execution + reflection_metaprogramming + dynamic eval. On the crucible: shell median 13.2 / 100 LOC, p90 54, max 123, no file at zero — but 80% of python, 76% of go and 84% of groovy files are at zero and pay the language constant anyway.

Scope

Replace the irc term with the file's own dynamism count, one formula at a time, each its own commit with a crucible before/after:

  1. _calc_cog_load — irc / mass_loc → dynamism / mass_loc (same units already)
  2. _calc_safety — attack_hits + irc → attack_hits + dynamism × w
  3. _calc_documentation — measured_risk + irc → same shape
  4. _calc_tech_debt, _calc_concurrency, _calc_state_flux — decide per formula whether dynamism belongs there at all; the current multipliers were fit to one integer, not to a meaning

Pointer arithmetic, macros and type bypasses stay in their own formulas — they are visible constructs with their own meaning, not dynamism.

The strictness irc from PR 1 remains only where a language-level term is defensible after this, at the small bounded weight; if the pilot finds no predictive value it goes to zero.

Metadata

Metadata

Assignees

No one assigned

    Labels

    core-engineModifications to the central physics and parsing enginemetricsHeuristics, risk exposures, and topological math updates

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions