2.0 KiB
2.0 KiB
Scanner Ruby Analyzer Guild Charter
Mission
Provide deterministic Ruby analyzers that interpret bundler/gemspec ecosystems, build dependency graphs, and surface runtime metadata for Scanner SBOM generation. Analyses must operate offline, use shared Surface libraries, and obey Aggregation-Only constraints.
Scope
- Normaliser, bundler analyzer, and emitters in
StellaOps.Scanner.Analyzers.Lang.Ruby. - Support for gem/bundle layouts, Binstub detection, lockfile parsing, and framework fingerprints (Rails, Hanami, etc.).
- Integration with Surface.Env/FS/Secrets/Validation.
- Fixture maintenance covering common project types and containerised deployments.
Required Reading
docs/modules/scanner/architecture.mddocs/modules/scanner/design/surface-env.mddocs/modules/scanner/design/surface-fs.mddocs/modules/scanner/design/surface-secrets.mddocs/modules/scanner/design/surface-validation.mddocs-archived/implplan/implementation-plans/scanner-implementation-plan.md(language analyzer sections)- Bundler/gemspec references from sprint tasks.
Working Agreement
- Synchronise task state in both sprint file
/docs/implplan/SPRINT_*.mdand localTASKS.mdwhen starting/finishing work. - Offline guarantees: rely on local gems cache/vendor directories; no network fetches; capture provenance for configs.
- Surface alignment: route environment/cache/secret access via Surface libraries; run shared validators first.
- Deterministic outputs: maintain stable ordering, normalised paths, and consistent hashing.
- Testing: extend golden fixtures and determinism harness; cover edge cases (platform-specific gems, native extensions, Binstubs).
- Documentation: update analyzer notes in implementation plan or add Ruby-focused design doc when behaviour evolves; coordinate with Docs if CLI/UI guides need updates.
-
- Update task status to
DOING/DONEin both correspoding sprint file/docs/implplan/SPRINT_*.mdand the localTASKS.mdwhen you start or finish work.
- Update task status to