51

/ 100

GradeF

Popular for its size, but the engineering basics lag behind the interest.

Higher than 36% of 5,156 graded repos

aily blockly library registry

A low grade is a to-do list, not a judgment of your code

Most gaps here are documentation, tests, and setup, not the code itself. Closing your top 3 gaps alone would lift this repo to C (75).

See your top fixes
Now
F
51
Potential
C
75

Top fixes

Highest-impact changes first, ranked by point weight

19 to address
  1. 1
    Tests18pt

    Set scripts.test in package.json to your actual test command, e.g. "vitest" or "jest".

  2. 2
    CI/CD14pt

    Add a step like `run: npm test`, `run: pytest`, or `run: tox` to your workflow file.

  3. 3
    CI/CD14pt

    Add a lint step to catch style issues automatically.

  4. 4
    CI/CD14pt

    Add `tsc --noEmit`, `mypy`, or `cargo check` to catch type errors before they merge.

Working through the fixes? Let every push regrade itself.

The free GitHub App rescans this repo on every push and posts the grade as a commit check, so the score climbs without coming back to rescan by hand.

Install the GitHub App

Scorecard

Every check, grouped by category and sorted worst-first

Documentation

58

License6pt0

No license detected.

Add a LICENSE file. Without one, nobody can legally use, copy, or contribute to your code.

README12pt50

README is present.

Contributing guide5pt72

CONTRIBUTING guide found.

Install and run instructions9pt100

README documents how to install the project.

Engineering

29

Linting and formatting5pt0

No linter or formatter found.

Add ESLint (eslint.config.js) and/or Prettier (.prettierrc), install them as devDependencies, and add a `lint` script to package.json.

Reproducibility6pt0

No dependency lockfile found (−70 pts).

Commit package-lock.json, pnpm-lock.yaml, yarn.lock, or bun.lock so Node installs are repeatable.

Issue and PR templates6pt0

No issue or PR templates found (−100 pts).

Add .github/ISSUE_TEMPLATE/ with bug_report.md and feature_request.md to guide contributors. It dramatically improves issue quality.

Tests18pt35

Test files detected (qwen-omni/test).

CI/CD14pt57

CI is configured (.github/workflows/library-compliance-check.yml).

Project health

95

Dependency manifest6pt83

Dependency manifest found (package.json).

Repository metadata5pt100

Repository has a description.

Activity5pt100

Actively maintained (pushed within the last month).

Housekeeping3pt100

.gitignore present.

Repository health signals

Activity, community, and responsiveness at scan time

Activity

  • -
    Commits (30d / 90d)
  • 20
    Forks
  • 0
    Releases

Community

  • 25% - Weak
    Community health
  • 2 bus factor
    authors own >50% of commits
  • 548
    Watchers

Responsiveness

  • 1d 13h
    Median issue response
  • 1h
    Median PR merge time
  • 36
    Open issues
Repository files418 root entries
  • .docs
    Good: CONTRIBUTING guide found.
    Issue: CONTRIBUTING guide contents could not be read (−28 pts vs a readable file).Fix: Move the file to the repo root or docs/CONTRIBUTING.md so its setup, style, test, and PR sections can be graded.
  • .docs_ai
  • .generators
  • .github
    Good: CI is configured (.github/workflows/library-compliance-check.yml).
  • .scripts
  • .scripts_git_action
  • 74HC595
  • AccelStepper
  • adafruit_ADXL345
  • adafruit_AHTX0
  • adafruit_BME280
  • adafruit_BMP280
  • adafruit_DHT
  • adafruit_Fingerprint
  • adafruit_GFX
  • adafruit_INA219
  • adafruit_LEDBackpack
  • adafruit_MLX90614
  • adafruit_MPR121
  • adafruit_mqtt
  • adafruit_NeoPixel
  • adafruit_pca9685
  • adafruit_PN532
  • adafruit_SGP30
  • adafruit_SHT3x
  • adafruit_SHT4x
  • adafruit_SHTC3
  • adafruit_SI7021
  • adafruit_ssd1331
  • adafruit_tca8418
  • adafruit_VL53L0X
  • AGS02MA
  • ai-assistant
  • ai-vox
  • ai-vox-xzai
  • aily_iic
  • aily_servo
  • animated-gif
  • arduino_avr_SoftwareSerial
  • arduino_BLE
  • arduino_http
  • arduino_iic
  • arduino_keyboard
  • arduino_modbus
  • arduino_mouse
  • arduino_mqtt
  • arduino_r4_AnalogWave
  • arduino_r4_CAN
  • arduino_r4_freertos
  • arduino_r4_io
  • arduino_r4_LED_Matrix
  • arduino_r4_RTC
  • arduino_r4_WDT
  • arduino_r4_WiFiS3
  • arduino_RS485
  • arduino_SD
  • arduino_spi
  • arduino_tone
  • arduino_wifi
  • ArduinoFFT
  • ArduinoJson
  • AS5600
  • async-esp-fs-webserver
  • async-http
  • avr_freertos
  • beginner_a1
  • BH1750
  • ble_serial
  • BLEOTA
  • Blynk
  • bq27220
  • capacitive-sensor
  • ChainableLED
  • chsc6x
  • Control_Surface
  • core-custom
  • core-EEPROM
  • core-functions
  • core-interrupt
  • core-io
  • core-lists
  • core-logic
  • core-loop
  • core-math
  • core-serial
  • core-string
  • core-text
  • core-time
  • core-variables
  • CST816S
  • deepseek-ai
  • dfrobot_Airquality
  • dfrobot_ASR_M
  • dfrobot_dfplayer
  • dfrobot_gm60
  • dfrobot_gnss
  • DFRobot_SpeechSynthesis_M
  • diandeng_blinker
  • ds1302
  • DS18B20
  • EMailSender
  • emakefun_codexpad
  • emakefun_dm11
  • emakefun_five_line_tracker
  • emakefun_gamepad
  • emakefun_gesture_recognizer
  • emakefun_gpio_expansion_board
  • emakefun_matrix_keyboard
  • emakefun_md40
  • emakefun_motor_driver
  • emakefun_nlcs11
  • emakefun_nlcs21
  • emakefun_speech_recognizer
  • emakefun_tts
  • emakefun_tts20
  • encoder
  • EncoderMotor
  • Es8311
  • ES8388
  • esp32_A2DP
  • esp32_arduinoota
  • esp32_async_tcp
  • esp32_asyncudp
  • esp32_ble
  • esp32_ble_gamepad
  • esp32_ble_keyboard
  • esp32_ble_mouse
  • esp32_bluetooth_serial
  • esp32_camera_webserver
  • esp32_CAN
  • esp32_deepsleep
  • esp32_dnsserver
  • esp32_emodbus
  • esp32_encoder
  • esp32_espnow
  • esp32_ethernet
  • esp32_ffat
  • esp32_freertos
  • esp32_hash
  • esp32_httpclient
  • esp32_httpupdate
  • esp32_httpupdateserver
  • esp32_i2c
  • esp32_i2s
  • esp32_littlefs
  • esp32_mdns
  • esp32_network
  • esp32_preferences
  • esp32_SD
  • esp32_sd_mmc
  • esp32_sleep
  • esp32_spi
  • esp32_spiffs
  • esp32_task
  • esp32_ticker
  • esp32_time
  • esp32_usb
  • esp32_usb_gamepad
  • ESP32_USB_Soft_Host
  • esp32_wdt
  • esp32_webserver
  • esp32_wifi
  • esp32_WiFiManager
  • ESPUI
  • FastLED
  • Firmata
  • GP2Y1010AU0F
  • heartrate
  • HID_Project
  • home-assistant
  • HomeSpan
  • HT16K33
  • HT16k33_Matrixs
  • http_img_loader
  • huoshan-ai-voice
  • HuskyLens
  • HuskyLensV2
  • HX711
  • icm20948
  • IICMotorDriver
  • IMU9DOF
  • Infineon_dps3xx
  • Infineon_tlx493d
  • Infineon_tlx5012
  • IOBOX_Motor
  • IRremote
  • KEYPAD4X4
  • l298n
  • LibSSH_ESP32
  • LineFollower_8
  • LiquidCrystal
  • LiquidCrystal_I2C
  • LM35
  • loborobot_rfidReader
  • LSM303AGR
  • LTR308
  • lvgl
  • max30102
  • MAX31865
  • MAX7219
  • mbit_matrix
  • mBrick_DCmotor
  • MIDI
  • MMA8653
  • ModbusRTUSlave
  • Motor
  • mp3player
  • MPU6050
  • MT6701
  • nano-modbus
  • nimble
  • nrf54_ble
  • nrf54_Bluefruit52Lib
  • nrf54_lowpower
  • nrf54_zigbee
  • NTC
  • NTPClient
  • NV170D
  • onebutton
  • openjumper_asr
  • openjumper_iicps3
  • openjumper_tts
  • OpenWeatherMap
  • PAJ7620
  • pid
  • pir
  • PJON
  • PS2X
  • Ps3Controller
  • pubsubclient
  • QuickESPNow
  • qwen-omni
    Good: Test files detected (qwen-omni/test).
  • radio
  • rc_switch
  • RemoteControl2G4
  • RFID
  • robotxlab
  • rp_ble
  • rp_httpclient
  • rp_webserver
  • rp_wifi
  • RTC
  • seeed_9dof
  • seeed_ads1115
  • seeed_adxl345
  • seeed_aht20
  • seeed_as5600
  • seeed_b6612fng
  • seeed_bme280
  • seeed_bme68x
  • seeed_bmm150
  • seeed_BMP280
  • seeed_CAN
  • seeed_dht
  • seeed_dopplerradar
  • seeed_fs
  • seeed_gesture
  • seeed_GFX
  • seeed_gsr
  • seeed_hcho_sensor
  • seeed_HM3301
  • seeed_hmc5883l
  • seeed_ir
  • seeed_lis3dhtr
  • seeed_lora_rf
  • seeed_LSM6DS3
  • seeed_MMA7660
  • seeed_mmwave
  • seeed_pca9685
  • seeed_rpcble
  • seeed_rpcwifi
  • seeed_rtc
  • seeed_SPA06
  • seeed_SSCMA
  • seeed_SSCMA_Core
  • seeed_tca9548a
  • seeed_ultrasonic
  • seeed_wio_buttons
  • seeed_wio_sound
  • seekfree_b1_controller
  • sentry
  • serial_transfer
  • servo
  • servo360
  • ServoEasing
  • simplefoc
  • spa06
  • sparkfun_5p49v60
  • sparkfun_ads1015
  • sparkfun_ads1219
  • sparkfun_adxl345
  • sparkfun_apds9301
  • sparkfun_apds9960
  • sparkfun_as3935
  • sparkfun_as7265x
  • sparkfun_as726x
  • sparkfun_as7331
  • sparkfun_ateccx08a
  • sparkfun_autodriver
  • sparkfun_bio_sensor_hub
  • sparkfun_bme280
  • sparkfun_bmi270
  • sparkfun_bmp180
  • sparkfun_bmv080
  • sparkfun_bq27441
  • sparkfun_can_bus
  • sparkfun_cap1203
  • sparkfun_ccs811
  • sparkfun_dmx
  • sparkfun_drv2605l
  • sparkfun_ds1307
  • sparkfun_ds3234
  • sparkfun_esp8266at
  • sparkfun_fingerprint_scanner_ttl
  • sparkfun_grideye
  • sparkfun_haptic_da7280
  • sparkfun_hih4030
  • sparkfun_hmc6343
  • sparkfun_htu21d
  • sparkfun_hyperdisplay
  • sparkfun_hyperdisplay_kwh018st01
  • sparkfun_hyperdisplay_ug2856klbag01
  • sparkfun_i2c_gps
  • sparkfun_led_8x7
  • sparkfun_lidar_v4
  • sparkfun_lis3dh
  • sparkfun_lp55231
  • sparkfun_lsm303c
  • sparkfun_lsm6dso
  • sparkfun_lsm9ds1
  • sparkfun_mag3110
  • sparkfun_max30105
  • sparkfun_micro_oled
  • sparkfun_microview
  • sparkfun_minigen
  • sparkfun_mma8452q
  • sparkfun_mpu9250_dmp
  • sparkfun_ms5803
  • sparkfun_my1690
  • sparkfun_nau7802
  • sparkfun_qwiic_buzzer
  • sparkfun_qwiic_joystick
  • sparkfun_qwiic_mp3
  • sparkfun_qwiic_openlog
  • sparkfun_qwiic_otos
  • sparkfun_qwiic_relay
  • sparkfun_qwiic_twist
  • sparkfun_qwiic_ultrasonic
  • sparkfun_qwiic_xm125
  • sparkfun_redbot
  • sparkfun_rfd77402
  • sparkfun_rfid_reader
  • sparkfun_rht03
  • sparkfun_rv1805
  • sparkfun_scmd
  • sparkfun_sevseg
  • sparkfun_shtc3
  • sparkfun_si4703
  • sparkfun_soil_moisture
  • sparkfun_ssd1320
  • sparkfun_tb6612fng
  • sparkfun_teensyview
  • sparkfun_tmp102
  • sparkfun_tmp117
  • sparkfun_ublox
  • sparkfun_vcnl4040
  • sparkfun_veml6030
  • sparkfun_veml6075
  • sparkfun_veml7700
  • sparkfun_vkey
  • sparkfun_vl53l1x
  • sparkfun_wifly
  • sparkfun_wisechip_hud
  • sparkfun_zx_sensor
  • sr04
  • Stepper
  • stm32_freertos
  • su03t
  • Summer_STM_Driver
  • taojingchi
  • TaskScheduler
  • TCS320
  • TCS34725
  • TFT_eSPI
  • tiny-gps-plus
  • TinyGSM
  • TM1637
  • TM1650
  • TM16xx
  • TVout
  • u8g2
  • Ultrasonic
  • unihiker_k10_button
  • unihiker_k10_camera_ai
  • unihiker_k10_display
  • unihiker_k10_led
  • unihiker_k10_music
  • unihiker_k10_sensor
  • unihiker_k10_speech
  • USB_Host_Shield_2_0
  • WebSockets
  • WiFiOTA
  • Wind_Rain
  • wol
  • ws2812_rgb_matrix
  • ws2812fx
  • xiaomi-mimo
  • yahboom_quad_md
  • zhipu-glm
  • .env.template
  • .gitignore
    Good: .gitignore present.
  • error.md
  • libraries-ai.json
  • libraries.json
  • package.json
    Good: Dependency manifest found (package.json).
  • readme_zh.md
    Good: README is present.
    Good: README is well structured with multiple sections.
    Issue: No screenshots or images in the README (−20 pts).Fix: Add a GIF, screenshot, or logo image. It is the fastest way to show what your project does.
    Good: README has code examples.
    Issue: No live demo link in the README (−20 pts).Fix: Link to a deployed version, docs site, or demo video. Users want to see it running.
    Issue: No status badges in the README (−10 pts).Fix: Add CI/build status badges from shields.io or your CI provider to signal project health.
    Good: README documents how to install the project.
    Good: README documents how to run the project.
  • readme.md
  • tags.json
RepoGrade badge preview

Add this badge to your README

It updates automatically each time the repo is re-graded.

[![RepoGrade](https://www.repo-grade.com/api/badge/ailyproject/aily-blockly-libraries)](https://www.repo-grade.com/report/ailyproject/aily-blockly-libraries)

More graded JavaScript repos