Skip to content

Feature/issues 269 270 271 272 graphql registry scoring reusability#289

Merged
mijinummi merged 2 commits intoMDTechLabs:mainfrom
DevZee404:feature/issues-269-270-271-272-graphql-registry-scoring-reusability
Apr 29, 2026
Merged

Feature/issues 269 270 271 272 graphql registry scoring reusability#289
mijinummi merged 2 commits intoMDTechLabs:mainfrom
DevZee404:feature/issues-269-270-271-272-graphql-registry-scoring-reusability

Conversation

@DevZee404
Copy link
Copy Markdown
Contributor

Summary
Implements four features for MDTechLabs/GasGuard covering GraphQL query
flexibility, rule discoverability, auto-fix trustworthiness and
cross-language analysis code sharing.

Changes

#269 — GraphQL API for Scan Results

  • Path: `apps/api/`, `src/modules/graphql/`
  • Schema: `getScan`, `listScans`, `getScanResults` with full field selection
  • Filters: severity, rule, language, date range, status
  • Resolvers wired to existing scan result data layer
  • All types and fields documented in schema descriptions

#270 — Rule Metadata Registry

  • Path: `src/registry/rules/`
  • Central queryable registry for all rule metadata
  • Stores: description, severity, tags, language support per rule
  • Queryable by: id, severity, tag, language, category
  • All existing rules registered with complete metadata
  • Standard registration interface for new rule additions

#271 — Auto-Fix Confidence Scoring

  • Path: `src/auto-fix/scoring/`
  • Confidence levels: high / medium / low per fix suggestion
  • Scoring factors: rule certainty, AST match quality, fix complexity
  • Scores surfaced in reports alongside each auto-fix suggestion
  • Filterable by minimum confidence threshold
  • Clear score display for informed user decision-making

#272 — Cross-Language Rule Reusability

  • Path: `libs/analysis-core/`, `packages/plugins/`
  • Common gas analysis patterns abstracted into `analysis-core`
  • Shared rule logic consumed by Solidity, Rust and Vyper plugins
  • Language plugins extend core via thin adapter layer
  • Duplicate logic across language analyzers eliminated
  • New language support requires only a plugin adapter

Test Coverage

  • GraphQL: queries return correct results, filters narrow correctly
  • Registry: rules queryable by all supported fields, new rule registers
  • Confidence: scores assigned per fix, filter by threshold works, report display
  • Reusability: shared rule fires correctly in Solidity, Rust and Vyper contexts

Closes

Closes #269
Closes #270
Closes #271
Closes #272

…d cross-language reusability

- feat(MDTechLabs#269): implement GraphQL API for scan results
  · Create GraphQL schema for scans in src/modules/graphql/
  · Queries: getScan, listScans, getScanResults with field selection
  · Filter support: by severity, rule, language, date range, status
  · GraphQL endpoint functional and registered in apps/api/
  · Resolvers wired to existing scan result data layer
  · Schema documented with descriptions on all types and fields

- feat(MDTechLabs#270): implement rule metadata registry
  · Create queryable rule registry in src/registry/rules/
  · Store rule descriptions, severity levels and tags per rule
  · Registry queryable by id, severity, tag, language and category
  · All existing rules registered with complete metadata entries
  · Registry serves as single source of truth for rule discoverability
  · Structured for extension — new rules register via standard interface

- feat(MDTechLabs#271): implement auto-fix confidence scoring
  · Create confidence scoring engine in src/auto-fix/scoring/
  · Assign confidence levels: high, medium, low per fix suggestion
  · Scoring based on: rule certainty, AST match quality, fix complexity
  · Confidence scores surfaced in scan reports alongside each fix
  · Users can filter auto-fix suggestions by minimum confidence threshold
  · Scores displayed clearly in report output for informed decision-making

- feat(MDTechLabs#272): implement cross-language rule reusability
  · Abstract common gas analysis patterns in libs/analysis-core/
  · Shared rule logic reusable across Solidity, Rust and Vyper plugins
  · Language-specific plugins in packages/plugins/ extend core abstractions
  · Duplicate logic across language analyzers fully eliminated
  · New language support requires only a thin plugin adapter layer
  · Existing rules migrated to use shared core pattern abstractions

Closes MDTechLabs#269, Closes MDTechLabs#270, Closes MDTechLabs#271, Closes MDTechLabs#272
@mijinummi mijinummi merged commit 8955b04 into MDTechLabs:main Apr 29, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🧪 Cross-Language Rule Reusability 🔄 Auto-Fix Confidence Scoring 🧾 Rule Metadata Registry 📡 GraphQL API for Scan Results

2 participants