multiversx-project-culture

Assess codebase quality and maturity based on documentation, testing practices, and code hygiene indicators. Use when evaluating project reliability, estimating audit effort, or onboarding to new codebases.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "multiversx-project-culture" with this command: npx skills add multiversx/mx-ai-skills/multiversx-mx-ai-skills-multiversx-project-culture

Project Culture & Code Maturity Assessment

Evaluate the quality and reliability of a MultiversX codebase based on documentation presence, testing culture, code hygiene, and development practices. This assessment helps calibrate audit depth and identify areas of concern.

When to Use

  • Starting engagement with a new project
  • Estimating audit scope and effort
  • Evaluating investment or integration risk
  • Providing feedback on development practices
  • Prioritizing review focus areas

1. Documentation Quality

Documentation Presence Checklist

ItemLocationStatus
README.mdProject root[ ] Present [ ] Useful
Build instructionsREADME or BUILDING.md[ ] Present [ ] Tested
API documentationdocs/ or inline[ ] Present [ ] Complete
Architecture overviewdocs/ or specs/[ ] Present
Deployment guideREADME or DEPLOY.md[ ] Present

MultiversX-Specific Documentation

ItemPurposeStatus
multiversx.jsonStandard build configuration[ ] Present
sc-config.tomlContract configuration[ ] Present
multiversx.yamlAdditional config[ ] Optional
snippets.shInteraction scripts[ ] Helpful
interaction/Deployment/call scripts[ ] Very helpful

Specification Documents

DocumentQuality Indicator
WhitepaperFormal specification of behavior
specs/ directoryDetailed technical specs
MIP compliance docsStandard adherence documentation
Security considerationsThreat model awareness

Documentation Quality Scoring

HIGH QUALITY:
- README explains purpose, build, test, deploy
- Architecture diagrams present
- API fully documented with examples
- Security model documented

MEDIUM QUALITY:
- README with basic instructions
- Some inline documentation
- Partial API coverage

LOW QUALITY:
- Minimal or no README
- No inline comments
- No architectural documentation

2. Testing Culture Assessment

Test Presence

# Check for Rust unit tests
grep -r "#\[test\]" src/

# Check for scenario tests
ls -la scenarios/

# Check for integration tests
ls -la tests/

Scenario Test Coverage

Coverage LevelIndicators
ExcellentEvery endpoint has scenario, edge cases tested, failure paths covered
GoodAll endpoints have basic scenarios, some edge cases
MinimalOnly deploy.scen.json or few scenarios
NoneNo scenarios/ directory

Test Quality Indicators

// HIGH QUALITY: Tests cover edge cases
#[test]
fn test_deposit_zero_amount() { }  // Boundary
#[test]
fn test_deposit_max_amount() { }   // Boundary
#[test]
fn test_deposit_wrong_token() { }  // Error case
#[test]
fn test_deposit_unauthorized() { } // Access control

// LOW QUALITY: Only happy path
#[test]
fn test_deposit() { }  // Basic only

Continuous Integration

CI FeatureStatus
Automated builds[ ] Present
Test execution[ ] Present
Coverage reporting[ ] Present
Lint/format checks[ ] Present
Security scanning[ ] Present

Simulation Testing

Look for:

  • mx-chain-simulator-go usage
  • Docker-based test environments
  • Integration test scripts

3. Code Hygiene Assessment

Linter Compliance

# Run Clippy
cargo clippy -- -W clippy::all

# Check formatting
cargo fmt --check
Clippy StatusInterpretation
0 warningsExcellent hygiene
< 10 warningsGood, minor issues
10-50 warningsNeeds attention
> 50 warningsPoor hygiene

Magic Numbers

# Find raw numeric literals
grep -rn "[^a-zA-Z_][0-9]\{2,\}[^a-zA-Z0-9_]" src/

Bad:

let seconds = 86400;  // What is this?
let fee = amount * 3 / 100;  // Magic 3%

Good:

const SECONDS_PER_DAY: u64 = 86400;
const FEE_PERCENT: u64 = 3;
const FEE_DENOMINATOR: u64 = 100;

let seconds = SECONDS_PER_DAY;
let fee = amount * FEE_PERCENT / FEE_DENOMINATOR;

Error Handling

# Count unwrap usage
grep -c "\.unwrap()" src/*.rs

# Count expect usage
grep -c "\.expect(" src/*.rs

# Count proper error handling
grep -c "sc_panic!\|require!" src/*.rs
PatternQuality Indicator
Mostly require! with messagesGood
Mixed require! and unwrap()Needs review
Mostly unwrap()Poor

Code Comments

AspectGood Practice
Complex logicHas explanatory comments
Public APIsHas doc comments
AssumptionsDocumented inline
TODOsTracked, not ignored
// GOOD: Complex logic explained
/// Calculates rewards using compound interest formula.
/// Formula: P * (1 + r/n)^(nt) where:
/// - P: principal
/// - r: annual rate (in basis points)
/// - n: compounding frequency
/// - t: time in years
fn calculate_rewards(&self, principal: BigUint, time: u64) -> BigUint {
    // ...
}

// BAD: No explanation for complex logic
fn calc(&self, p: BigUint, t: u64) -> BigUint {
    // Dense, unexplained calculation
}

4. Dependency Management

Cargo.lock Presence

ls -la Cargo.lock
StatusInterpretation
CommittedReproducible builds
Not committedVersion drift risk

Version Pinning

# GOOD: Specific versions
[dependencies.multiversx-sc]
version = "0.64.1"  # edition = "2024" recommended

# BAD: Wildcard versions
[dependencies.multiversx-sc]
version = "*"

# ACCEPTABLE: Caret (minor updates)
[dependencies.multiversx-sc]
version = "^0.54"

Dependency Audit

# Check for known vulnerabilities
cargo audit

5. Maturity Scoring Matrix

Score Calculation

CategoryWeightHigh (3)Medium (2)Low (1)
Documentation20%CompletePartialMinimal
Testing30%Full coverageBasic coverageMinimal
Code hygiene20%Clean ClippyFew warningsMany issues
Dependencies15%Pinned, auditedPinnedWildcards
CI/CD15%Full pipelineBasicNone

Interpretation

ScoreMaturityAudit Focus
2.5-3.0HighBusiness logic, edge cases
1.5-2.4MediumBroad review, verify basics
1.0-1.4LowEverything, assume issues exist

6. Red Flags

Immediate Concerns

Red FlagRisk
No tests at allLogic likely untested
Wildcard dependenciesSupply chain vulnerability
unsafe blocks without justificationMemory safety issues
Excessive unwrap()Panic vulnerabilities
No READMEMaintenance abandoned?
Outdated framework versionKnown vulnerabilities

Yellow Flags

Yellow FlagConcern
Few scenario testsLimited coverage
Some Clippy warningsTechnical debt
Incomplete documentationKnowledge silos
No CI/CDRegression risk

7. Assessment Report Template

# Project Maturity Assessment

**Project**: [Name]
**Version**: [Version]
**Date**: [Date]
**Assessor**: [Name]

## Summary Score: [X/3.0] - [HIGH/MEDIUM/LOW] Maturity

## Documentation (Score: X/3)
- README: [Present/Missing]
- Build instructions: [Tested/Untested/Missing]
- Architecture docs: [Complete/Partial/Missing]
- API docs: [Complete/Partial/Missing]

## Testing (Score: X/3)
- Unit tests: [X tests found]
- Scenario tests: [X scenarios covering Y endpoints]
- Coverage estimate: [X%]
- Edge case coverage: [Good/Partial/Minimal]

## Code Hygiene (Score: X/3)
- Clippy warnings: [X warnings]
- Formatting: [Consistent/Inconsistent]
- Magic numbers: [X instances]
- Error handling: [Good/Needs work]

## Dependencies (Score: X/3)
- Cargo.lock: [Committed/Missing]
- Version pinning: [All/Some/None]
- Known vulnerabilities: [None/X found]

## CI/CD (Score: X/3)
- Build automation: [Yes/No]
- Test automation: [Yes/No]
- Security scanning: [Yes/No]

## Recommendations
1. [Highest priority improvement]
2. [Second priority]
3. [Third priority]

## Audit Focus Areas
Based on this assessment, the audit should prioritize:
1. [Area based on weaknesses]
2. [Area based on risk]

8. Improvement Recommendations by Level

For Low Maturity Projects

  1. Add basic README with build instructions
  2. Create scenario tests for all endpoints
  3. Fix all Clippy warnings
  4. Pin dependency versions
  5. Set up basic CI

For Medium Maturity Projects

  1. Expand test coverage to edge cases
  2. Add architecture documentation
  3. Document security considerations
  4. Add coverage reporting
  5. Implement security scanning

For High Maturity Projects

  1. Formal verification consideration
  2. Fuzzing and property testing
  3. External security audit
  4. Bug bounty program
  5. Incident response documentation

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Security

multiversx-dapp-audit

No summary provided by upstream source.

Repository SourceNeeds Review
Security

multiversx-security-audit

No summary provided by upstream source.

Repository SourceNeeds Review
Security

multiversx-audit-context

No summary provided by upstream source.

Repository SourceNeeds Review
General

multiversx-clarification-expert

No summary provided by upstream source.

Repository SourceNeeds Review