npx skills add ...
npx skills add gracefullight/stock-checker --skill oma-dev-workflow
Configure development tasks, git hooks, CI/CD, or release automation. Use when creating or fixing a repository development workflow.
npx skills add gracefullight/stock-checker --skill oma-dev-workflow
Set up, run, optimize, and troubleshoot reproducible development workflows in monorepos using mise, task automation, validation pipelines, CI/CD, migrations, i18n builds, and release coordination.
mise.toml, task definitions, CI files, migration/i18n/build configs, and failure logs when relevantmise, project task definitions, runtime versions, package managers behind mise tasksmise.toml files and available tasks.mise install.mise tasks --all.mise install.| Action | SSL primitive | Evidence |
|---|---|---|
| Read task definitions | READ | mise.toml, CI config |
| Select task strategy | SELECT | Parallel/sequential/changed-scope |
| Run workflow commands | CALL_TOOL | mise run, mise install, mise tasks |
| Write workflow config | WRITE | Hooks, CI, env templates |
| Validate outputs | VALIDATE | Exit codes, logs, artifacts |
| Report status | NOTIFY | Final workflow summary |
mise, shell, CI/CD tooling, project package manager tasks behind miseFor app-specific tasks:
| Scope | Resource target |
|---|---|
CODEBASE | mise.toml, CI configs, scripts, generated clients |
LOCAL_FS | Env templates, build outputs, logs |
PROCESS | mise, build, test, lint, dev-server commands |
CREDENTIALS | Secrets must not be hardcoded in workflow configs |
mise run tasks instead of direct package manager commandsmise install after pulling changes that might update runtime versionsmise run lint, mise run test) for independent operationslint:changed, test:changed)mise tasks --all to discover available tasks before runningmise install after toolchain version updatesmise tasks: in mise.toml ([tasks."lint:changed"]) — unquoted colons fail TOML parsingmonorepo_root = true (plus [monorepo].config_roots) in the root mise.toml before using //path:task syntaxThe root mise.toml must enable monorepo task paths, or every //path:task invocation fails with "require a monorepo root configuration":
Root-level tasks:
App-specific tasks:
TOML quoting rule: task names containing : must be quoted — [tasks."gen:api"], never [tasks.gen:api] (unquoted colons are a TOML parse error).
| Task Type | Purpose | Example |
|---|---|---|
dev | Start development server | mise run //apps/api:dev |
build | Production build | mise run //apps/web:build |
test | Run test suite | mise run //apps/api:test |
lint | Run linter | mise run lint |
format | Format code | mise run format |
typecheck | Type checking | mise run typecheck |
migrate | Database migrations | mise run //apps/api:migrate |
| Topic | Resource File | When to Load |
|---|---|---|
| Validation Pipeline | resources/validation-pipeline.md | Git hooks, CI/CD, change-based testing |
| Database & Infrastructure | resources/database-patterns.md | Migrations, local Docker infra |
| API Generation | resources/api-workflows.md | Generating API clients |
| i18n Patterns | resources/i18n-patterns.md | Internationalization |
| Release Coordination | resources/release-coordination.md | Versioning, changelog, releases |
| Troubleshooting | resources/troubleshooting.md | Debugging issues |
Define dependencies in mise.toml:
Parallel (independent tasks):
Sequential (dependent tasks):
Mixed approach:
Common patterns for monorepo env vars:
When setting up development environment:
mise list)When running tasks:
When troubleshooting:
mise config, mise doctor)| Issue | Solution |
|---|---|
| Task not found | Run mise tasks --all to list available tasks |
| Runtime not found | Run mise install to install missing runtime |
| Task hangs | Check for interactive prompts, use --yes if available |
| Port already in use | Find process: lsof -ti:PORT then kill |
| Permission denied | Check file permissions, try with proper user |
| Missing dependencies | Run mise run install or app-specific install |
Follow the core workflow step by step:
../_shared/core/clarification-protocol.md../_shared/core/difficulty-guide.md (unresolved scope or dependencies)mise, task runner, monorepo, dev server, lint, format, test, typecheck, build, deployment, ci/cd, parallel execution, workflow, automation, tooling
# Install mise
curl https://mise.run | sh
# Activate in shell
echo 'eval "$(~/.local/bin/mise activate)"' >> ~/.zshrc
# Install all runtimes defined in mise.toml
mise install
# Verify installation
mise listproject-root/
├── mise.toml # Root task definitions
├── apps/
│ ├── api/ # Backend application
│ │ └── mise.toml # App-specific tasks
│ ├── web/ # Frontend application
│ │ └── mise.toml
│ └── mobile/ # Mobile application
│ └── mise.toml
├── packages/
│ ├── shared/ # Shared libraries
│ └── config/ # Shared configuration
└── scripts/ # Utility scripts# Root mise.toml — monorepo_root is a top-level key (before any [table])
monorepo_root = true
[monorepo]
config_roots = ["apps/*", "packages/*"]mise run lint # Lint all apps (parallel)
mise run test # Test all apps (parallel)
mise run dev # Start all dev servers
mise run build # Production builds# Syntax: mise run //{path}:{task}
# Requires monorepo_root = true in root mise.toml (see Project Structure)
mise run //apps/api:dev
mise run //apps/api:test
mise run //apps/web:build[tasks.build]
depends = ["lint", "test"]
run = "echo 'Building after lint and test pass'"
[tasks.dev]
depends = ["//apps/api:dev", "//apps/web:dev"]# Runs all lint tasks simultaneously (via depends)
mise run lint
# mise-native parallel execution of multiple tasks
mise run lint ::: test# Runs in order: lint → test → build
mise run lint && mise run test && mise run build# Start dev servers in background
mise run //apps/api:dev &
mise run //apps/web:dev &
wait# Database
DATABASE_URL=postgresql://user:pass@localhost:5432/db
# Cache
REDIS_URL=redis://localhost:6379/0
# API
API_URL=http://localhost:8000
# Frontend
PUBLIC_API_URL=http://localhost:8000