57
/ 100
Early-stage engineering. The fastest wins are test coverage and CI.
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 B (81).
See your top fixesTop fixes
Highest-impact changes first, ranked by point weight
- 1Tests18pt
Set scripts.test in package.json to your actual test command, e.g. "vitest" or "jest".
- 2CI/CD14pt
Add a step like `run: npm test`, `run: pytest`, or `run: tox` to your workflow file.
- 3CI/CD14pt
Add a lint step to catch style issues automatically.
- 4CI/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.
Scorecard
Every check, grouped by category and sorted worst-first
Documentation
77
README is present.
CONTRIBUTING guide found.
README documents how to install the project.
A license file is present.
Engineering
29
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.
No dependency lockfile found (−70 pts).
→ Commit package-lock.json, pnpm-lock.yaml, yarn.lock, or bun.lock so Node installs are repeatable.
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.
Test files detected (.scripts/check-changed-readme-governance.test.js).
CI is configured (.github/workflows/library-compliance-check.yml).
Project health
95
Dependency manifest found (package.json).
Repository has a description.
Actively maintained (pushed within the last month).
.gitignore present.
Repository health signals
Activity, community, and responsiveness at scan time
Activity
- -Commits (30d / 90d)
- 29Forks
- 0Releases
Community
- 25% - WeakCommunity health
- -authors own >50% of commits
- 2,282Watchers
Responsiveness
- 2d 9hMedian issue response
- 1hMedian PR merge time
- 24Open issues
Repository files587 root entries
- .docsGood: 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
- .githubGood: CI is configured (.github/workflows/library-compliance-check.yml).
- .scriptsGood: Test files detected (.scripts/check-changed-readme-governance.test.js).
- .scripts_git_action
- 74HC595
- AccelStepper
- adafruit_ads122c04
- adafruit_ADXL345
- adafruit_AHTX0
- adafruit_BME280
- adafruit_BMP280
- adafruit_bmp3xx
- adafruit_DHT
- adafruit_Fingerprint
- adafruit_GFX
- adafruit_INA219
- adafruit_ina228
- adafruit_ina237_ina238
- adafruit_ina260
- adafruit_LEDBackpack
- adafruit_max31855
- adafruit_max31856
- adafruit_max6675
- adafruit_mcp23x17
- adafruit_mcp4725
- adafruit_mcp4728
- adafruit_mcp9600
- adafruit_MLX90614
- adafruit_mlx90640
- adafruit_MPR121
- adafruit_mqtt
- adafruit_NeoPixel
- adafruit_pca9685
- adafruit_pcf8574
- adafruit_PN532
- adafruit_SGP30
- adafruit_sgp40
- adafruit_sgp41
- adafruit_SHT3x
- adafruit_SHT4x
- adafruit_SHTC3
- adafruit_SI7021
- adafruit_ssd1331
- adafruit_tca8418
- adafruit_tinyusb
- adafruit_tmag5273
- adafruit_VL53L0X
- adafruit_vl53l5cx
- adafruit_vl53l7cx
- adafruit-max31865
- adi_ad9833
- AGS02MA
- ai-assistant
- ai-vox
- ai-vox-xzai
- aily_iic
- aily_servo
- animated-gif
- arduino_audio_tools
- arduino_avr_SoftwareSerial
- arduino_BLE
- arduino_ethernet
- Arduino_GFX
- 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
- calculator
- capacitive-sensor
- ChainableLED
- chipIntelli_ASR
- chipIntelli_Audio
- chipIntelli_CWSL
- chipIntelli_IR
- 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
- cubic_core_car
- cubic-ps3
- cubic-robot
- deepseek-ai
- dfrobot_64x8dtof
- dfrobot_Airquality
- dfrobot_ASR_M
- dfrobot_bmp58x
- dfrobot_bmv080
- dfrobot_c4001
- dfrobot_c4002
- dfrobot_ct1780
- dfrobot_dfplayer
- dfrobot_ens160
- dfrobot_eoxygen_sensor
- dfrobot_gm60
- dfrobot_gnss
- dfrobot_gp8xxx
- dfrobot_human_detection
- dfrobot_rainfall_sensor
- dfrobot_scd4x
- dfrobot_sfa40
- DFRobot_SpeechSynthesis_M
- dfrobot_stcc4
- dfrobot-unihikerexpansion
- diandeng_blinker
- ds1302
- DS18B20
- dynamixel2arduino
- ElegantOTA
- 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
- epub-reader
- Es8311
- ES8388
- esp_tflite_micro
- esp32_A2DP
- esp32_arduinoota
- esp32_async_tcp
- esp32_asyncudp
- esp32_audio_i2s
- esp32_ble
- esp32_ble_gamepad
- esp32_ble_gamepad_nimble
- esp32_ble_keyboard
- esp32_ble_keyboard_nimble
- esp32_ble_mouse
- esp32_ble_mouse_nimble
- esp32_bluetooth_serial
- esp32_camera_webserver
- esp32_CAN
- esp32_deepsleep
- esp32_display_panel
- esp32_dnsserver
- esp32_eeprom
- esp32_emodbus
- esp32_encoder
- esp32_esp_sr
- esp32_espnow
- esp32_ethernet
- esp32_ffat
- esp32_freertos
- esp32_hash
- esp32_httpclient
- esp32_httpupdate
- esp32_httpupdateserver
- esp32_i2c
- esp32_i2s
- esp32_littlefs
- esp32_matter
- esp32_mdns
- esp32_netbios
- esp32_network
- esp32_openthread
- esp32_ppp
- esp32_preferences
- esp32_rainmaker
- esp32_SD
- esp32_sd_mmc
- esp32_sleep
- esp32_spi
- esp32_spiffs
- esp32_task
- esp32_ticker
- esp32_time
- esp32_tts
- esp32_usb
- esp32_usb_gamepad
- ESP32_USB_Soft_Host
- esp32_wdt
- esp32_webserver
- esp32_wifi
- esp32_WiFiManager
- esp32_wifiprov
- esp32_zigbee
- esp32cam
- esp8266_dnsserver
- esp8266_eeprom
- esp8266_hash
- esp8266_httpclient
- esp8266_httpupdate
- esp8266_httpupdateserver
- esp8266_i2s
- esp8266_littlefs
- esp8266_llmnr
- esp8266_lwip_ethernet
- esp8266_lwip_ppp
- esp8266_mdns
- esp8266_netbios
- esp8266_sd
- esp8266_sdfat
- esp8266_servo
- esp8266_softwareserial
- esp8266_spi
- esp8266_spislave
- esp8266_ssdp
- esp8266_system
- esp8266_ticker
- esp8266_webserver
- esp8266_wifi
- esp8266_wifi_mesh
- ESPUI
- FastAccelStepper
- FastLED
- firebase-client
- Firmata
- FT6336U
- ggwave
- GP2Y1010AU0F
- gpio_viewer
- GxEPD2
- heartrate
- HID_Project
- home-assistant
- HomeSpan
- HT16K33
- HT16k33_Matrixs
- http_img_loader
- huoshan-ai-voice
- HuskyLens
- HuskyLensV2
- HX711
- icm20948
- IICMotorDriver
- IMU9DOF
- ina226
- Infineon_dps3xx
- Infineon_tlx493d
- Infineon_tlx5012
- influxdb-client
- IOBOX_Motor
- IRremote
- irremote-esp8266
- jinyichen-st7789
- KEYPAD4X4
- l298n
- LibSSH_ESP32
- LineFollower_8
- linkbit_adafruit_NeoPixel
- linkbit_bq27220
- linkbit_GxEPD2
- linkbit_onebutton
- LiquidCrystal
- LiquidCrystal_I2C
- LM35
- loborobot_rfidReader
- LSM303AGR
- LTR308
- lvgl
- m5stack_cardputer
- m5stack_cores3
- m5stack_dial
- m5stack_dinmeter
- m5stack_ir
- m5stack_paper
- m5stack_rs485
- m5stack_sd
- m5stack_station
- m5stack_unified
- max30102
- MAX31865
- MAX7219
- mbit_matrix
- mBrick_DCmotor
- melexis-mlx90642
- micro_ros_arduino
- MIDI
- MMA8653
- ModbusRTUSlave
- Motor
- mp3player
- MPU6050
- MT6701
- nano-modbus
- nimble
- nofrendo
- nrf24l01
- nrf54_Adafruit_SPIFlash
- nrf54_ble
- nrf54_Bluefruit52Lib
- nrf54_EEPROM
- nrf54_lowpower
- nrf54_matter
- nrf54_Preferences
- nrf54_thread
- nrf54_zigbee
- NTC
- NTPClient
- NV170D
- ojoy_amoled
- ojoy_bq27220
- ojoy_es8311
- ojoy_pcf85063
- ojoy_qmi8658c
- ojoy_sd
- onebutton
- open-codex-micro
- openjumper_asr
- openjumper_iicps3
- openjumper_tts
- OpenWeatherMap
- optical-mouse
- paj7620
- pid
- pir
- PJON
- PS2X
- Ps3Controller
- pubsubclient
- QuickESPNow
- qwen-omni
- radio
- rc_switch
- RemoteControl2G4
- RFID
- roboeyes
- robotxlab
- rp_ble
- rp_httpclient
- rp_webserver
- rp_wifi
- RTC
- schedule-manager
- SdFat
- 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_freertos
- 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_rpcmdns
- seeed_rpcwifi
- seeed_rpcwifimanager
- seeed_rtc
- seeed_SPA06
- seeed_SSCMA
- seeed_SSCMA_Core
- seeed_tca9548a
- seeed_ultrasonic
- seeed_wio_accel
- seeed_wio_buttons
- seeed_wio_gfx
- seeed_wio_ir
- seeed_wio_lvgl
- seeed_wio_rtc
- seeed_wio_sd
- seeed_wio_sound
- seekfree_b1_controller
- sensirion_sen5x
- sensirion_sps30
- sentry
- serial_transfer
- serial-cmd
- servo
- servo360
- ServoEasing
- simple-keypad
- 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
- stepper-controller
- stm32_freertos
- su03t
- Summer_STM_Driver
- taojingchi
- taojingchi-stm32
- TaskScheduler
- TCS320
- TCS34725
- TFT_eSPI
- thingsboard
- tiny-gps-plus
- TinyGSM
- tjc-serial-screen
- TM1637
- TM1650
- TM16xx
- TMCStepper
- todolist
- TVout
- u8g2
- u8g2_AstraUIGood: A license file is present.
- u8g2_MiaoUI
- u8g2_robot_eyes
- 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
- veml6040
- WebSockets
- WiFiOTA
- winbond_w25qxx
- Wind_Rain
- wol
- ws2812_rgb_matrix
- ws2812fx
- xiaomi-mimo
- xiaomi-mimo-easy
- xiaozhi_mcp
- xueersi_esp32_button
- xueersi_esp32_clock-display
- xueersi_esp32_countdown-timer
- xueersi_esp32_lunar-calendar
- xueersi_esp32_sd
- xueersi_esp32_tft-screen
- xueersi_esp32_ui-animation
- xueersi_esp32_weather-station
- yahboom_quad_md
- zhipu-glm
- .env.template
- .gitignoreGood: .gitignore present.
- error.md
- package.jsonGood: Dependency manifest found (package.json).
- readme_zh.mdGood: 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
Add this badge to your README
It updates automatically each time the repo is re-graded.
[](https://www.repo-grade.com/report/ailyproject/aily-blockly-libraries)