- Introduced AGENTS.md, README.md, TASKS.md, and implementation_plan.md for Vexer, detailing mission, responsibilities, key components, and operational notes. - Established similar documentation structure for Vulnerability Explorer and Zastava modules, including their respective workflows, integrations, and observability notes. - Created risk scoring profiles documentation outlining the core workflow, factor model, governance, and deliverables. - Ensured all modules adhere to the Aggregation-Only Contract and maintain determinism and provenance in outputs.
		
			
				
	
	
	
		
			1.3 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			1.3 KiB
		
	
	
	
	
	
	
	
Entry-Point Runtime — Ruby
Signals to gather
argv0equalsruby,bundle,bundler,rackup,puma,unicorn,sidekiq, orresque.- Bundler scripts: 
bundle exec <cmd>; Gemfile andGemfile.lock. - Rails and Rack hints: 
config.ru,bin/rails,bin/rake. - Background jobs: 
sidekiq,delayed_job,resque. - Environment variables (
RAILS_ENV,RACK_ENV,BUNDLE_GEMFILE). 
Implementation notes
- Normalise 
bundle execby skipping the bundler wrapper and targeting the actual command. - Resolve script paths relative to the working directory.
 - For 
puma/unicorn, parse config files (config/puma.rb,config/unicorn.rb) to gather ports/workers. - Recognise 
foreman startorovermindlaunching Procfile processes—may devolve toSupervisorclassification. 
Evidence & scoring
- Boost confidence when 
Gemfile.lockexists and the requested server script is found. - Add evidence for env variables and config files.
 - Penalise ambiguous CLI invocations or missing artefacts.
 
Edge cases
- Alpine distroless images may rely on 
rubysymlinks; confirm binary presence. - JRuby (running on Java) may trigger both Ruby and Java signals—prefer Ruby if 
ruby/jrubyinterpreter is explicit. - Supervisors launching multiple Ruby workers should produce a single 
Supervisorentry with Ruby children.