Class: RosettAi::Policy::Auditor

Inherits:
Object
  • Object
show all
Defined in:
lib/rosett_ai/policy/auditor.rb

Overview

Generates compliance audit reports for the current project.

Audit results include deny list coverage, protected files, opt-out markers, and tier hierarchy validation.

Instance Method Summary collapse

Constructor Details

#initialize(deny_list:, protected_files:, opt_out_scanner: OptOutScanner.new) ⇒ Auditor

Returns a new instance of Auditor.

Parameters:

  • deny_list (DenyList)

    active deny list

  • protected_files (ProtectedFiles)

    active protected files

  • opt_out_scanner (OptOutScanner) (defaults to: OptOutScanner.new)

    scanner instance



16
17
18
19
20
# File 'lib/rosett_ai/policy/auditor.rb', line 16

def initialize(deny_list:, protected_files:, opt_out_scanner: OptOutScanner.new)
  @deny_list = deny_list
  @protected_files = protected_files
  @opt_out_scanner = opt_out_scanner
end

Instance Method Details

#audit(project_files: []) ⇒ Hash

Generates an audit report.

Parameters:

  • project_files (Array<String>) (defaults to: [])

    list of project files to audit

Returns:

  • (Hash)

    audit report



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/rosett_ai/policy/auditor.rb', line 26

def audit(project_files: [])
  denied = project_files.select { |path| @deny_list.denied?(path) }
  opted_out = @opt_out_scanner.scan(project_files)

  {
    deny_list_patterns: @deny_list.size,
    denied_files: denied.size,
    protected_files: @protected_files.size,
    opted_out_files: opted_out.size,
    opted_out_paths: opted_out,
    compliant: true
  }
end