Class: MetzScan::Calibration::ProjectAnalyzerEvidenceRunner::ReadinessCatalog

Inherits:
Object
  • Object
show all
Defined in:
lib/metz_scan/calibration/project_analyzer_evidence_runner/readiness_catalog.rb

Constant Summary collapse

NOTES =
{
  "MetzProject/ServiceSoup" => {
    "evidence" => "Medium design-pressure findings are calibrated; setup orchestration is downranked.",
    "next" => "Monitor future calibration for setup noise or new service-call shapes.",
    "not_next" => "Do not reopen promotion unless default-output evidence regresses."
  },
  "MetzProject/RepeatedBranching" => {
    "evidence" => "Repeated branch tables are calibrated; generic subjects are lower-confidence.",
    "next" => "Monitor generic-subject calibration and branch-subject readability.",
    "not_next" => "Do not expand branch parsing without sparse fixture-backed evidence."
  },
  "MetzProject/DeepInheritanceTree" => {
    "evidence" => "Useful inheritance spread evidence remains dependent on the optional project index.",
    "next" => "Use opt-in calibration to watch grouped output and broad-root downranking.",
    "not_next" => "Do not make default-output eligible while findings depend on optional indexing."
  },
  "MetzProject/PackageDependencyPressure" => {
    "evidence" => "Expanded active fixtures show 47 findings: 5 medium package boundaries and " \
                  "42 low shared dependencies; consolidated medium review splits into " \
                  "3 useful prompts and 2 needs-context framework or extension surfaces.",
    "next" => "Keep parked unless future generic work can separate cross-cutting logging pressure " \
              "from framework roots and public extension registries.",
    "not_next" => "Do not implement classifier behavior, promote, retune thresholds, downrank " \
                  "framework-root prompts, or add app-specific suppressions from this sample."
  },
  "MetzProject/NamespaceLeakPressure" => {
    "evidence" => "Expanded active fixtures show 49 findings: 12 medium namespace-boundary prompts " \
                  "and 37 low shared namespaces; consolidated medium review mixes useful domain " \
                  "and security prompts with public extension or facade surfaces.",
    "next" => "Keep parked unless future generic work separates namespace-boundary prompts from " \
              "public extension, facade, payment, reporting, and renderer APIs.",
    "not_next" => "Do not implement classifier behavior, promote, add app-specific suppressions, " \
                  "downrank payment namespaces, or retune thresholds from this narrow sample."
  },
  "MetzProject/ImplicitContextPressure" => {
    "evidence" => "Expanded active fixtures show 12 findings dominated by mechanical framework state: " \
                  "9 mechanical, 1 useful execution-identity prompt, and 2 needs-context identity prompts.",
    "next" => "Keep candidate-only and use broader samples to separate boundary setup from ambient identity " \
              "design pressure.",
    "not_next" => "Do not add suppressions, global-access forms, promotion, or default-output eligibility " \
                  "from this sample."
  },
  "MetzProject/RepeatedQueryCriteria" => {
    "evidence" => "Expanded active fixtures show 16 findings: 13 useful prompts and 3 mechanical lookups.",
    "next" => "Keep separating membership-table lookups from business-named and lifecycle lookup concepts.",
    "not_next" => "Do not add more query forms, dynamic receivers, association receivers, SQL strings, " \
                  "joins, merges, Arel, single-key finders, bang finders, exists?, or take."
  },
  "MetzProject/SubclassOverridePressure" => {
    "evidence" => "Expanded active fixtures show 148 findings: 93 low broad-root and " \
                  "55 medium manual-review findings across abstract hook, cooperative, and " \
                  "replacement override families.",
    "next" => "Keep parked unless future generic work separates design-pressure hook contracts " \
              "from deliberate extension protocols and setup conventions.",
    "not_next" => "Do not implement classifier behavior, promote, make default-output eligible, " \
                  "suppress medium categories, or retune thresholds."
  }
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(analyzer_names: [], analyzers: Commands::Scan::ProjectAnalyzerRunner::ANALYZERS) ⇒ ReadinessCatalog

Returns a new instance of ReadinessCatalog.



68
69
70
71
# File 'lib/metz_scan/calibration/project_analyzer_evidence_runner/readiness_catalog.rb', line 68

def initialize(analyzer_names: [], analyzers: Commands::Scan::ProjectAnalyzerRunner::ANALYZERS)
  @analyzer_names = Array(analyzer_names)
  @analyzers = analyzers
end

Instance Method Details

#to_aObject



73
74
75
# File 'lib/metz_scan/calibration/project_analyzer_evidence_runner/readiness_catalog.rb', line 73

def to_a
  selected_analyzers.filter_map { |analyzer| readiness_entry(analyzer) }
end