feat(marketplace): command consolidation + 8 new plugins (v8.1.0 → v9.0.0) [BREAKING]

Phase 1b: Rename all ~94 commands across 12 plugins to /<noun> <action>
sub-command pattern. Git-flow consolidated from 8→5 commands (commit
variants absorbed into --push/--merge/--sync flags). Dispatch files,
name: frontmatter, and cross-reference updates for all plugins.

Phase 2: Design documents for 8 new plugins in docs/designs/.

Phase 3: Scaffold 8 new plugins — saas-api-platform, saas-db-migrate,
saas-react-platform, saas-test-pilot, data-seed, ops-release-manager,
ops-deploy-pipeline, debug-mcp. Each with plugin.json, commands, agents,
skills, README, and claude-md-integration. Marketplace grows from 12→20.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-06 14:52:11 -05:00
parent 5098422858
commit 2d51df7a42
321 changed files with 13582 additions and 1019 deletions

View File

@@ -0,0 +1,94 @@
---
name: orm-detection
description: Detect Alembic, Prisma, or raw SQL migration tools and locate configuration files
---
# ORM Detection
## Purpose
Identify the database migration tool in use and map its configuration. This skill is loaded by the `migration-planner` agent during setup and migration generation to ensure tool-appropriate output.
---
## Detection Rules
### Alembic Detection
| Indicator | Location | Confidence |
|-----------|----------|------------|
| `alembic.ini` file | Project root | High |
| `alembic/` directory with `env.py` | Project root | High |
| `alembic/versions/` directory | Within alembic dir | High |
| `sqlalchemy` + `alembic` in requirements | `requirements.txt`, `pyproject.toml` | Medium |
| `from alembic import op` in Python files | `*.py` in versions dir | High |
**Alembic Configuration Files:**
- `alembic.ini` — Main config (database URL, migration directory)
- `alembic/env.py` — Migration environment (model imports, target metadata)
- `alembic/versions/` — Migration files directory
**Model Location:**
- Look for `Base = declarative_base()` or `class Base(DeclarativeBase)` in Python files
- Check `target_metadata` in `env.py` to find the models module
- Common locations: `app/models/`, `models/`, `src/models/`
### Prisma Detection
| Indicator | Location | Confidence |
|-----------|----------|------------|
| `prisma/schema.prisma` file | Project root | High |
| `@prisma/client` in package.json | `package.json` | High |
| `prisma/migrations/` directory | Within prisma dir | High |
| `npx prisma` in scripts | `package.json` scripts | Medium |
**Prisma Configuration Files:**
- `prisma/schema.prisma` — Schema definition (models, datasource, generator)
- `prisma/migrations/` — Migration directories (timestamp-named)
- `.env``DATABASE_URL` connection string
### Raw SQL Detection
| Indicator | Location | Confidence |
|-----------|----------|------------|
| `migrations/` dir with numbered `.sql` files | Project root | Medium |
| `flyway.conf` | Project root | High (Flyway) |
| `knexfile.js` or `knexfile.ts` | Project root | High (Knex) |
| `db/migrate/` directory | Project root | Medium (Rails-style) |
**Raw SQL Configuration:**
- Migration directory location
- Naming pattern (sequential numbers, timestamps)
- Tracking table name (if database-tracked)
---
## Database Connection Detection
Look for connection strings in this order:
1. `DATABASE_URL` environment variable
2. `.env` file in project root
3. `alembic.ini` `sqlalchemy.url` setting
4. `prisma/schema.prisma` `datasource` block
5. Application config files (`config.py`, `config.js`, `settings.py`)
**Database Type Detection:**
- `postgresql://` or `postgres://` — PostgreSQL
- `mysql://` — MySQL
- `sqlite:///` — SQLite
- `mongodb://` — MongoDB (not supported for SQL migrations)
---
## Version Detection
**Alembic**: Parse from `pip show alembic` or `requirements.txt` pin
**Prisma**: Parse from `package.json` `@prisma/client` version
**SQLAlchemy**: Parse from requirements; important for feature compatibility (1.4 vs 2.0 API)
---
## Ambiguous Projects
If multiple migration tools are detected (e.g., Alembic for backend + Prisma for a separate service), ask the user which one to target. Store selection in `.db-migrate.json`.