| name | Workflow Config System |
| description | The agent implements a centralized workflow configuration system for Git workflows, enabling set-once-use-everywhere automation for trunk-based development, gitflow, and github-flow patterns with integrated testing automation. |
| category | devops |
| related_skills | ["devops/git-hooks","devops/feature-flags","devops/github-actions","methodology/finishing-development-branch","methodology/test-task-generation","methodology/test-enforcement"] |
| related_commands | ["/workflow:init","/workflow:trunk-based","/workflow:status","/git:commit","/git:pr","/quality:verify-done","/quality:coverage-check","/dev:feature-tested"] |
Workflow Config System
Overview
The Workflow Config System provides a centralized configuration file (.omgkit/workflow.yaml) that defines Git workflow preferences, commit conventions, PR templates, code review settings, deployment configuration, and git hooks. Once configured, all OMGKIT commands automatically respect these settings.
Core Principles
Set Once, Use Everywhere
- Configure workflow preferences in one file
- All commands automatically read and apply settings
- No need to repeat parameters on every command
Convention Over Configuration
- Sensible defaults for all settings
- Only override what you need to customize
- Progressive disclosure of advanced options
Workflow Flexibility
- Support for trunk-based, gitflow, and github-flow
- Easy switching between workflows
- Project-specific customization
Configuration File Location
project-root/
āāā .omgkit/
ā āāā workflow.yaml # Main configuration file
āāā .git/
ā āāā hooks/ # Auto-generated hooks
āāā src/
Complete Configuration Schema
version: "1.0"
git:
workflow: trunk-based
main_branch: main
develop_branch: develop
branch_prefix:
feature: "feature/"
fix: "fix/"
hotfix: "hotfix/"
release: "release/"
chore: "chore/"
max_branch_age_days: 2
delete_branch_on_merge: true
linear_history: true
commit:
conventional: true
require_scope: false
allowed_types:
- feat
- fix
- docs
- style
- refactor
- perf
- test
- chore
- ci
- build
sign_commits: false
max_subject_length: 72
max_body_line_length: 100
require_issue_reference: false
issue_pattern: "#[0-9]+"
pr:
template: auto
require_review: true
min_reviewers: 1
auto_assign: true
default_reviewers: []
draft_by_default: false
title_format: conventional
labels:
enabled: true
by_path:
"src/api/**": ["backend", "api"]
"src/ui/**": ["frontend", "ui"]
"src/components/**": ["frontend", "components"]
"tests/**": ["testing"]
"docs/**": ["documentation"]
".github/**": ["ci-cd"]
by_branch:
"feature/": ["enhancement"]
"fix/": ["bug"]
"hotfix/": ["bug", "critical"]
"chore/": ["maintenance"]
squash_merge: true
merge_commit_format: "pr_title"
review:
auto_review: true
trigger: on_pr
checks:
- security
- performance
- best-practices
- tests
- accessibility
- documentation
block_on_critical: true
strictness: standard
always_review:
- "**/*.env*"
- "**/secrets/**"
- "**/auth/**"
- "**/security/**"
skip_review:
- "**/*.lock"
- "**/generated/**"
- "**/vendor/**"
- "**/node_modules/**"
deploy:
provider: vercel
production_branch: main
preview_on_pr: true
auto_deploy: true
required_env_vars: []
pre_deploy_checks:
- test
- build
- lint
post_deploy:
notify_slack: false
run_smoke_tests: false
hooks:
pre_commit:
enabled: true
actions:
- lint
- type-check
- format
fail_fast: true
commit_msg:
enabled: true
validate_conventional: true
max_length: 72
pre_push:
enabled: true
actions:
- test
- security-scan
skip_on_ci: true
post_merge:
enabled: false
actions:
- install
- migrate
feature_flags:
provider: none
default_state: false
naming_convention: "kebab-case"
require_for_wip: true
testing:
enforcement:
level: standard
auto_generate_tasks: true
coverage_gates:
unit:
minimum: 80
target: 90
excellent: 95
integration:
minimum: 60
target: 75
branch:
minimum: 70
target: 80
overall:
minimum: 75
target: 85
required_test_types:
- unit
- integration
optional_test_types:
- e2e
- security
- performance
- contract
blocking:
on_test_failure: true
on_coverage_below_minimum: true
on_missing_test_types: true
overrides:
allow_emergency: true
require_approval: true
log_all_overrides: true
ci:
provider: github-actions
required_checks:
- build
- test
- lint
- coverage
allow_failing_checks: false
Workflow Types
Trunk-Based Development
Best for: Teams practicing continuous deployment, small PRs, feature flags.
git:
workflow: trunk-based
main_branch: main
max_branch_age_days: 2
delete_branch_on_merge: true
feature_flags:
provider: vercel-edge
require_for_wip: true
Characteristics:
- Single main branch
- Short-lived feature branches (< 2 days)
- Feature flags for incomplete work
- Continuous deployment to production
- Small, frequent commits
GitHub Flow
Best for: Teams with regular releases, code review focus.
git:
workflow: github-flow
main_branch: main
max_branch_age_days: 7
delete_branch_on_merge: true
Characteristics:
- Main branch always deployable
- Feature branches for all changes
- PR-based code review
- Deploy after merge
GitFlow
Best for: Teams with scheduled releases, multiple environments.
git:
workflow: gitflow
main_branch: main
develop_branch: develop
branch_prefix:
feature: "feature/"
release: "release/"
hotfix: "hotfix/"
Characteristics:
- Main and develop branches
- Feature branches from develop
- Release branches for staging
- Hotfix branches for urgent fixes
Command Integration
How Commands Use Config
All OMGKIT git commands automatically read from .omgkit/workflow.yaml:
git:
commit:
conventional: true
allowed_types: [feat, fix, ...]
git:
pr:
template: auto
require_review: true
labels: ...
git:
review:
auto_review: true
checks: [security, performance, ...]
Config Precedence
- Command-line arguments (highest priority)
.omgkit/workflow.yaml settings
- Default values (lowest priority)
Initialization
Quick Start
/workflow:init
/workflow:init --workflow=trunk-based
/workflow:init --defaults
Manual Setup
Create .omgkit/workflow.yaml manually:
version: "1.0"
git:
workflow: trunk-based
main_branch: main
commit:
conventional: true
pr:
require_review: true
review:
auto_review: true
Validation
The config is validated on every command:
/workflow:status
Best Practices
For Trunk-Based Development
-
Keep branches short-lived
git:
max_branch_age_days: 2
-
Enable feature flags
feature_flags:
provider: vercel-edge
require_for_wip: true
-
Auto-review on PR
review:
auto_review: true
trigger: on_pr
-
Squash merges
pr:
squash_merge: true
For Team Collaboration
-
Enforce conventional commits
commit:
conventional: true
require_scope: true
-
Require reviews
pr:
require_review: true
min_reviewers: 2
-
Block on critical issues
review:
block_on_critical: true
For CI/CD
-
Required checks
ci:
required_checks:
- build
- test
- lint
-
Pre-deploy validation
deploy:
pre_deploy_checks:
- test
- build
Migration Guide
From No Config
- Run
/workflow:init
- Review generated config
- Commit
.omgkit/workflow.yaml
- Team syncs and starts using
From .github/workflows
Keep existing workflows, add OMGKIT config for local development:
ci:
provider: github-actions
Troubleshooting
Config Not Found
Warning: No workflow config found at .omgkit/workflow.yaml
Using default settings. Run /workflow:init to create config.
Invalid Config
Error: Invalid workflow config
- git.workflow must be one of: trunk-based, gitflow, github-flow
- commit.max_subject_length must be a number
Run /workflow:status for details.
Hook Not Running
- Check hooks are enabled in config
- Run
/hooks:setup to regenerate hooks
- Verify
.git/hooks/ permissions
Related Skills
devops/git-hooks - Git hooks setup and management
devops/feature-flags - Feature flag implementation
devops/github-actions - CI/CD workflows
methodology/finishing-development-branch - Branch completion patterns