Files
metabuilder/tools/README.md

217 lines
4.3 KiB
Markdown

# Scripts Directory
This directory contains utility scripts for development, testing, database management, and quality assurance.
## 📋 Overview
Scripts organized by function:
### Quality & Documentation
- **`doc-quality-checker.sh`** - Documentation quality assessment tool (0-100% scoring)
### Database
- **`migrate-to-prisma.sh`** - Migrate existing database to Prisma ORM
- **`migrate-to-prisma.cjs`** - CJS-based migration utility
- **`setup-packages.cjs`** - Initialize package structure
- **`generate-package-index.cjs`** - Build `packages/index.json` from package metadata
- **`generate-mega-seed.cjs`** - Generate large forum seed data for demos
### Testing & Deployment
- **`run-act.sh`** - Run GitHub Actions workflows locally
- **`test-workflows.sh`** - Validate workflow definitions
### Debugging
- **`diagnose-workflows.sh`** - Diagnose workflow issues
- **`capture-screenshot.ts`** - Capture UI screenshots
## 🚀 Common Tasks
### Check Documentation Quality
```bash
# Basic check
./scripts/doc-quality-checker.sh /workspaces/metabuilder
# Detailed output
./scripts/doc-quality-checker.sh /workspaces/metabuilder true
```
Returns:
- README Coverage (%)
- Documentation Structure (%)
- Code Comments (%)
- JSDoc Coverage (%)
- Type Annotations (%)
- Examples/Guides (%)
- Architecture Docs (%)
- Security Docs (%)
- **Overall Quality Score & Recommendations**
Quality Rating:
- 90-100%: Excellent
- 80-89%: Good
- 70-79%: Fair
- 60-69%: Poor
- 0-59%: Very Poor
### Run GitHub Actions Locally
```bash
# Run all workflows
./scripts/run-act.sh
# Requires 'act' tool: https://github.com/nektos/act
```
### Migrate to Prisma
```bash
./scripts/migrate-to-prisma.sh
```
## 📚 Available Scripts
### `run-act.sh`
Run GitHub Actions workflows locally using [act](https://github.com/nektos/act).
**Prerequisites:**
- Docker installed and running
- `act` CLI tool installed
**Installing act:**
```bash
# macOS (Homebrew)
brew install act
# Linux (curl)
curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash
# Windows (Chocolatey)
choco install act-cli
```
**Usage:**
```bash
# Run default CI workflow
npm run act
# Or directly:
./scripts/run-act.sh
# Run specific workflow
./scripts/run-act.sh -w ci.yml
# Run only a specific job
./scripts/run-act.sh -w ci.yml -j lint
./scripts/run-act.sh -w ci.yml -j test-e2e
# Simulate different events
./scripts/run-act.sh -e pull_request
# List available workflows
./scripts/run-act.sh -l
# Show help
./scripts/run-act.sh -h
```
### `generate-package-index.cjs`
Generate `packages/index.json` so the package loader can discover packages dynamically.
**Usage:**
```bash
node tools/generate-package-index.cjs
```
### `generate-mega-seed.cjs`
Generate a deterministic, large seed dataset for `forum_forge` examples.
**Usage:**
```bash
node tools/generate-mega-seed.cjs
```
**Common Use Cases:**
1. **Test CI pipeline before pushing:**
```bash
npm run act
```
2. **Debug e2e test failures:**
```bash
./scripts/run-act.sh -w ci.yml -j test-e2e
```
3. **Test lint fixes:**
```bash
./scripts/run-act.sh -w ci.yml -j lint
```
4. **Simulate PR checks:**
```bash
./scripts/run-act.sh -e pull_request
```
**Notes:**
- First run will be slow as Docker images are downloaded
- Act runs workflows in Docker containers that simulate GitHub Actions runners
- Some features may not work exactly like GitHub Actions (e.g., certain actions, secrets)
- Check `.actrc` or pass `-P` flag to customize Docker images used
**Troubleshooting:**
If you encounter issues:
1. **Docker not running:**
```bash
# Make sure Docker is running
docker ps
```
2. **Permission issues:**
```bash
# Make sure script is executable
chmod +x scripts/run-act.sh
```
3. **Out of disk space:**
```bash
# Clean up Docker images
docker system prune -a
```
4. **Workflow doesn't run:**
```bash
# List workflows to verify name
./scripts/run-act.sh -l
```
### `setup-packages.cjs`
Sets up the package system for the project. This script is automatically run during `postinstall`.
**Usage:**
```bash
npm run setup-packages
```
## Adding New Scripts
When adding new scripts:
1. Make them executable: `chmod +x scripts/your-script.sh`
2. Add appropriate help/usage information
3. Document them in this README
4. Consider adding npm script aliases in `package.json`