- 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
- argv0equals- ruby,- bundle,- bundler,- rackup,- puma,- unicorn,- sidekiq, or- resque.
- 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.