aidevops 2.52.1 → 2.53.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/VERSION +1 -1
- package/aidevops.sh +15 -9
- package/package.json +4 -4
- package/scripts/npm-postinstall.js +6 -7
- package/setup.sh +1 -1
- package/templates/deploy-templates.sh +144 -0
- package/templates/home/.agent/README.md +33 -0
- package/templates/home/AGENTS.md +96 -0
- package/templates/home/git/.agent/README.md +48 -0
- package/templates/home/git/AGENTS.md +97 -0
- package/templates/standard-functions.sh +179 -0
- package/templates/wordpress-performance-workflow.md +217 -0
- package/.agent/AGENTS.md +0 -614
- package/.agent/accounts.md +0 -65
- package/.agent/aidevops/add-new-mcp-to-aidevops.md +0 -456
- package/.agent/aidevops/api-integrations.md +0 -335
- package/.agent/aidevops/architecture.md +0 -510
- package/.agent/aidevops/configs.md +0 -274
- package/.agent/aidevops/docs.md +0 -244
- package/.agent/aidevops/extension.md +0 -311
- package/.agent/aidevops/mcp-integrations.md +0 -340
- package/.agent/aidevops/mcp-troubleshooting.md +0 -162
- package/.agent/aidevops/memory-patterns.md +0 -172
- package/.agent/aidevops/providers.md +0 -217
- package/.agent/aidevops/recommendations.md +0 -321
- package/.agent/aidevops/requirements.md +0 -301
- package/.agent/aidevops/resources.md +0 -214
- package/.agent/aidevops/security-requirements.md +0 -174
- package/.agent/aidevops/security.md +0 -350
- package/.agent/aidevops/service-links.md +0 -400
- package/.agent/aidevops/services.md +0 -357
- package/.agent/aidevops/setup.md +0 -153
- package/.agent/aidevops/troubleshooting.md +0 -389
- package/.agent/aidevops.md +0 -124
- package/.agent/build-plus.md +0 -244
- package/.agent/content/guidelines.md +0 -109
- package/.agent/content.md +0 -87
- package/.agent/health.md +0 -59
- package/.agent/legal.md +0 -59
- package/.agent/loop-state/full-loop.local.md +0 -16
- package/.agent/loop-state/ralph-loop.local.md +0 -10
- package/.agent/marketing.md +0 -440
- package/.agent/memory/README.md +0 -260
- package/.agent/onboarding.md +0 -796
- package/.agent/plan-plus.md +0 -245
- package/.agent/research.md +0 -100
- package/.agent/sales.md +0 -333
- package/.agent/scripts/101domains-helper.sh +0 -701
- package/.agent/scripts/add-missing-returns.sh +0 -140
- package/.agent/scripts/agent-browser-helper.sh +0 -311
- package/.agent/scripts/agno-setup.sh +0 -712
- package/.agent/scripts/ahrefs-mcp-wrapper.js +0 -168
- package/.agent/scripts/aidevops-update-check.sh +0 -71
- package/.agent/scripts/ampcode-cli.sh +0 -522
- package/.agent/scripts/auto-version-bump.sh +0 -156
- package/.agent/scripts/autogen-helper.sh +0 -512
- package/.agent/scripts/beads-sync-helper.sh +0 -596
- package/.agent/scripts/closte-helper.sh +0 -5
- package/.agent/scripts/cloudron-helper.sh +0 -321
- package/.agent/scripts/codacy-cli-chunked.sh +0 -581
- package/.agent/scripts/codacy-cli.sh +0 -442
- package/.agent/scripts/code-audit-helper.sh +0 -5
- package/.agent/scripts/coderabbit-cli.sh +0 -417
- package/.agent/scripts/coderabbit-pro-analysis.sh +0 -238
- package/.agent/scripts/commands/code-simplifier.md +0 -86
- package/.agent/scripts/commands/full-loop.md +0 -246
- package/.agent/scripts/commands/postflight-loop.md +0 -103
- package/.agent/scripts/commands/recall.md +0 -182
- package/.agent/scripts/commands/remember.md +0 -132
- package/.agent/scripts/commands/save-todo.md +0 -175
- package/.agent/scripts/commands/session-review.md +0 -154
- package/.agent/scripts/comprehensive-quality-fix.sh +0 -106
- package/.agent/scripts/context-builder-helper.sh +0 -522
- package/.agent/scripts/coolify-cli-helper.sh +0 -674
- package/.agent/scripts/coolify-helper.sh +0 -380
- package/.agent/scripts/crawl4ai-examples.sh +0 -401
- package/.agent/scripts/crawl4ai-helper.sh +0 -1078
- package/.agent/scripts/crewai-helper.sh +0 -681
- package/.agent/scripts/dev-browser-helper.sh +0 -513
- package/.agent/scripts/dns-helper.sh +0 -396
- package/.agent/scripts/domain-research-helper.sh +0 -917
- package/.agent/scripts/dspy-helper.sh +0 -285
- package/.agent/scripts/dspyground-helper.sh +0 -291
- package/.agent/scripts/eeat-score-helper.sh +0 -1242
- package/.agent/scripts/efficient-return-fix.sh +0 -92
- package/.agent/scripts/extract-opencode-prompts.sh +0 -128
- package/.agent/scripts/find-missing-returns.sh +0 -113
- package/.agent/scripts/fix-auth-headers.sh +0 -104
- package/.agent/scripts/fix-common-strings.sh +0 -254
- package/.agent/scripts/fix-content-type.sh +0 -100
- package/.agent/scripts/fix-error-messages.sh +0 -130
- package/.agent/scripts/fix-misplaced-returns.sh +0 -74
- package/.agent/scripts/fix-remaining-literals.sh +0 -152
- package/.agent/scripts/fix-return-statements.sh +0 -41
- package/.agent/scripts/fix-s131-default-cases.sh +0 -249
- package/.agent/scripts/fix-sc2155-simple.sh +0 -102
- package/.agent/scripts/fix-shellcheck-critical.sh +0 -187
- package/.agent/scripts/fix-string-literals.sh +0 -273
- package/.agent/scripts/full-loop-helper.sh +0 -773
- package/.agent/scripts/generate-opencode-agents.sh +0 -497
- package/.agent/scripts/generate-opencode-commands.sh +0 -1629
- package/.agent/scripts/generate-skills.sh +0 -366
- package/.agent/scripts/git-platforms-helper.sh +0 -640
- package/.agent/scripts/gitea-cli-helper.sh +0 -743
- package/.agent/scripts/github-cli-helper.sh +0 -702
- package/.agent/scripts/gitlab-cli-helper.sh +0 -682
- package/.agent/scripts/gsc-add-user-helper.sh +0 -325
- package/.agent/scripts/gsc-sitemap-helper.sh +0 -678
- package/.agent/scripts/hetzner-helper.sh +0 -485
- package/.agent/scripts/hostinger-helper.sh +0 -229
- package/.agent/scripts/keyword-research-helper.sh +0 -1815
- package/.agent/scripts/langflow-helper.sh +0 -544
- package/.agent/scripts/linkedin-automation.py +0 -241
- package/.agent/scripts/linter-manager.sh +0 -599
- package/.agent/scripts/linters-local.sh +0 -434
- package/.agent/scripts/list-keys-helper.sh +0 -488
- package/.agent/scripts/local-browser-automation.py +0 -339
- package/.agent/scripts/localhost-helper.sh +0 -744
- package/.agent/scripts/loop-common.sh +0 -806
- package/.agent/scripts/mainwp-helper.sh +0 -728
- package/.agent/scripts/markdown-formatter.sh +0 -338
- package/.agent/scripts/markdown-lint-fix.sh +0 -311
- package/.agent/scripts/mass-fix-returns.sh +0 -58
- package/.agent/scripts/mcp-diagnose.sh +0 -167
- package/.agent/scripts/mcp-inspector-helper.sh +0 -449
- package/.agent/scripts/memory-helper.sh +0 -650
- package/.agent/scripts/monitor-code-review.sh +0 -255
- package/.agent/scripts/onboarding-helper.sh +0 -706
- package/.agent/scripts/opencode-github-setup-helper.sh +0 -797
- package/.agent/scripts/opencode-test-helper.sh +0 -213
- package/.agent/scripts/pagespeed-helper.sh +0 -464
- package/.agent/scripts/pandoc-helper.sh +0 -362
- package/.agent/scripts/postflight-check.sh +0 -555
- package/.agent/scripts/pre-commit-hook.sh +0 -259
- package/.agent/scripts/pre-edit-check.sh +0 -169
- package/.agent/scripts/qlty-cli.sh +0 -356
- package/.agent/scripts/quality-cli-manager.sh +0 -525
- package/.agent/scripts/quality-feedback-helper.sh +0 -462
- package/.agent/scripts/quality-fix.sh +0 -263
- package/.agent/scripts/quality-loop-helper.sh +0 -1108
- package/.agent/scripts/ralph-loop-helper.sh +0 -836
- package/.agent/scripts/ralph-upstream-check.sh +0 -341
- package/.agent/scripts/secretlint-helper.sh +0 -847
- package/.agent/scripts/servers-helper.sh +0 -241
- package/.agent/scripts/ses-helper.sh +0 -619
- package/.agent/scripts/session-review-helper.sh +0 -404
- package/.agent/scripts/setup-linters-wizard.sh +0 -379
- package/.agent/scripts/setup-local-api-keys.sh +0 -330
- package/.agent/scripts/setup-mcp-integrations.sh +0 -472
- package/.agent/scripts/shared-constants.sh +0 -246
- package/.agent/scripts/site-crawler-helper.sh +0 -1487
- package/.agent/scripts/snyk-helper.sh +0 -940
- package/.agent/scripts/sonarcloud-autofix.sh +0 -193
- package/.agent/scripts/sonarcloud-cli.sh +0 -191
- package/.agent/scripts/sonarscanner-cli.sh +0 -455
- package/.agent/scripts/spaceship-helper.sh +0 -747
- package/.agent/scripts/stagehand-helper.sh +0 -321
- package/.agent/scripts/stagehand-python-helper.sh +0 -321
- package/.agent/scripts/stagehand-python-setup.sh +0 -441
- package/.agent/scripts/stagehand-setup.sh +0 -439
- package/.agent/scripts/system-cleanup.sh +0 -340
- package/.agent/scripts/terminal-title-helper.sh +0 -388
- package/.agent/scripts/terminal-title-setup.sh +0 -549
- package/.agent/scripts/test-stagehand-both-integration.sh +0 -317
- package/.agent/scripts/test-stagehand-integration.sh +0 -309
- package/.agent/scripts/test-stagehand-python-integration.sh +0 -341
- package/.agent/scripts/todo-ready.sh +0 -263
- package/.agent/scripts/tool-version-check.sh +0 -362
- package/.agent/scripts/toon-helper.sh +0 -469
- package/.agent/scripts/twilio-helper.sh +0 -917
- package/.agent/scripts/updown-helper.sh +0 -279
- package/.agent/scripts/validate-mcp-integrations.sh +0 -250
- package/.agent/scripts/validate-version-consistency.sh +0 -131
- package/.agent/scripts/vaultwarden-helper.sh +0 -597
- package/.agent/scripts/vercel-cli-helper.sh +0 -816
- package/.agent/scripts/verify-mirrors.sh +0 -169
- package/.agent/scripts/version-manager.sh +0 -831
- package/.agent/scripts/webhosting-helper.sh +0 -471
- package/.agent/scripts/webhosting-verify.sh +0 -238
- package/.agent/scripts/wordpress-mcp-helper.sh +0 -508
- package/.agent/scripts/worktree-helper.sh +0 -595
- package/.agent/scripts/worktree-sessions.sh +0 -577
- package/.agent/seo/dataforseo.md +0 -215
- package/.agent/seo/domain-research.md +0 -532
- package/.agent/seo/eeat-score.md +0 -659
- package/.agent/seo/google-search-console.md +0 -366
- package/.agent/seo/gsc-sitemaps.md +0 -282
- package/.agent/seo/keyword-research.md +0 -521
- package/.agent/seo/serper.md +0 -278
- package/.agent/seo/site-crawler.md +0 -387
- package/.agent/seo.md +0 -236
- package/.agent/services/accounting/quickfile.md +0 -159
- package/.agent/services/communications/telfon.md +0 -470
- package/.agent/services/communications/twilio.md +0 -569
- package/.agent/services/crm/fluentcrm.md +0 -449
- package/.agent/services/email/ses.md +0 -399
- package/.agent/services/hosting/101domains.md +0 -378
- package/.agent/services/hosting/closte.md +0 -177
- package/.agent/services/hosting/cloudflare.md +0 -251
- package/.agent/services/hosting/cloudron.md +0 -478
- package/.agent/services/hosting/dns-providers.md +0 -335
- package/.agent/services/hosting/domain-purchasing.md +0 -344
- package/.agent/services/hosting/hetzner.md +0 -327
- package/.agent/services/hosting/hostinger.md +0 -287
- package/.agent/services/hosting/localhost.md +0 -419
- package/.agent/services/hosting/spaceship.md +0 -353
- package/.agent/services/hosting/webhosting.md +0 -330
- package/.agent/social-media.md +0 -69
- package/.agent/templates/plans-template.md +0 -114
- package/.agent/templates/prd-template.md +0 -129
- package/.agent/templates/tasks-template.md +0 -108
- package/.agent/templates/todo-template.md +0 -89
- package/.agent/tools/ai-assistants/agno.md +0 -471
- package/.agent/tools/ai-assistants/capsolver.md +0 -326
- package/.agent/tools/ai-assistants/configuration.md +0 -221
- package/.agent/tools/ai-assistants/overview.md +0 -209
- package/.agent/tools/ai-assistants/status.md +0 -171
- package/.agent/tools/ai-assistants/windsurf.md +0 -193
- package/.agent/tools/ai-orchestration/autogen.md +0 -406
- package/.agent/tools/ai-orchestration/crewai.md +0 -445
- package/.agent/tools/ai-orchestration/langflow.md +0 -405
- package/.agent/tools/ai-orchestration/openprose.md +0 -487
- package/.agent/tools/ai-orchestration/overview.md +0 -362
- package/.agent/tools/ai-orchestration/packaging.md +0 -647
- package/.agent/tools/browser/agent-browser.md +0 -464
- package/.agent/tools/browser/browser-automation.md +0 -400
- package/.agent/tools/browser/chrome-devtools.md +0 -282
- package/.agent/tools/browser/crawl4ai-integration.md +0 -422
- package/.agent/tools/browser/crawl4ai-resources.md +0 -277
- package/.agent/tools/browser/crawl4ai-usage.md +0 -416
- package/.agent/tools/browser/crawl4ai.md +0 -585
- package/.agent/tools/browser/dev-browser.md +0 -341
- package/.agent/tools/browser/pagespeed.md +0 -260
- package/.agent/tools/browser/playwright.md +0 -266
- package/.agent/tools/browser/playwriter.md +0 -310
- package/.agent/tools/browser/stagehand-examples.md +0 -456
- package/.agent/tools/browser/stagehand-python.md +0 -483
- package/.agent/tools/browser/stagehand.md +0 -421
- package/.agent/tools/build-agent/agent-review.md +0 -224
- package/.agent/tools/build-agent/build-agent.md +0 -784
- package/.agent/tools/build-mcp/aidevops-plugin.md +0 -476
- package/.agent/tools/build-mcp/api-wrapper.md +0 -445
- package/.agent/tools/build-mcp/build-mcp.md +0 -240
- package/.agent/tools/build-mcp/deployment.md +0 -401
- package/.agent/tools/build-mcp/server-patterns.md +0 -632
- package/.agent/tools/build-mcp/transports.md +0 -366
- package/.agent/tools/code-review/auditing.md +0 -383
- package/.agent/tools/code-review/automation.md +0 -219
- package/.agent/tools/code-review/best-practices.md +0 -203
- package/.agent/tools/code-review/codacy.md +0 -151
- package/.agent/tools/code-review/code-simplifier.md +0 -174
- package/.agent/tools/code-review/code-standards.md +0 -309
- package/.agent/tools/code-review/coderabbit.md +0 -101
- package/.agent/tools/code-review/management.md +0 -155
- package/.agent/tools/code-review/qlty.md +0 -248
- package/.agent/tools/code-review/secretlint.md +0 -565
- package/.agent/tools/code-review/setup.md +0 -250
- package/.agent/tools/code-review/snyk.md +0 -563
- package/.agent/tools/code-review/tools.md +0 -230
- package/.agent/tools/content/summarize.md +0 -353
- package/.agent/tools/context/augment-context-engine.md +0 -468
- package/.agent/tools/context/context-builder-agent.md +0 -76
- package/.agent/tools/context/context-builder.md +0 -375
- package/.agent/tools/context/context7.md +0 -371
- package/.agent/tools/context/dspy.md +0 -302
- package/.agent/tools/context/dspyground.md +0 -374
- package/.agent/tools/context/llm-tldr.md +0 -219
- package/.agent/tools/context/osgrep.md +0 -488
- package/.agent/tools/context/prompt-optimization.md +0 -338
- package/.agent/tools/context/toon.md +0 -292
- package/.agent/tools/conversion/pandoc.md +0 -304
- package/.agent/tools/credentials/api-key-management.md +0 -154
- package/.agent/tools/credentials/api-key-setup.md +0 -224
- package/.agent/tools/credentials/environment-variables.md +0 -180
- package/.agent/tools/credentials/vaultwarden.md +0 -382
- package/.agent/tools/data-extraction/outscraper.md +0 -974
- package/.agent/tools/deployment/coolify-cli.md +0 -388
- package/.agent/tools/deployment/coolify-setup.md +0 -353
- package/.agent/tools/deployment/coolify.md +0 -345
- package/.agent/tools/deployment/vercel.md +0 -390
- package/.agent/tools/git/authentication.md +0 -132
- package/.agent/tools/git/gitea-cli.md +0 -193
- package/.agent/tools/git/github-actions.md +0 -207
- package/.agent/tools/git/github-cli.md +0 -223
- package/.agent/tools/git/gitlab-cli.md +0 -190
- package/.agent/tools/git/opencode-github-security.md +0 -350
- package/.agent/tools/git/opencode-github.md +0 -328
- package/.agent/tools/git/opencode-gitlab.md +0 -252
- package/.agent/tools/git/security.md +0 -196
- package/.agent/tools/git.md +0 -207
- package/.agent/tools/opencode/oh-my-opencode.md +0 -375
- package/.agent/tools/opencode/opencode-anthropic-auth.md +0 -446
- package/.agent/tools/opencode/opencode.md +0 -651
- package/.agent/tools/social-media/bird.md +0 -437
- package/.agent/tools/task-management/beads.md +0 -336
- package/.agent/tools/terminal/terminal-title.md +0 -251
- package/.agent/tools/ui/shadcn.md +0 -196
- package/.agent/tools/ui/ui-skills.md +0 -115
- package/.agent/tools/wordpress/localwp.md +0 -311
- package/.agent/tools/wordpress/mainwp.md +0 -391
- package/.agent/tools/wordpress/scf.md +0 -527
- package/.agent/tools/wordpress/wp-admin.md +0 -729
- package/.agent/tools/wordpress/wp-dev.md +0 -940
- package/.agent/tools/wordpress/wp-preferred.md +0 -398
- package/.agent/tools/wordpress.md +0 -95
- package/.agent/workflows/branch/bugfix.md +0 -63
- package/.agent/workflows/branch/chore.md +0 -95
- package/.agent/workflows/branch/experiment.md +0 -115
- package/.agent/workflows/branch/feature.md +0 -59
- package/.agent/workflows/branch/hotfix.md +0 -98
- package/.agent/workflows/branch/refactor.md +0 -92
- package/.agent/workflows/branch/release.md +0 -96
- package/.agent/workflows/branch.md +0 -347
- package/.agent/workflows/bug-fixing.md +0 -267
- package/.agent/workflows/changelog.md +0 -129
- package/.agent/workflows/code-audit-remote.md +0 -279
- package/.agent/workflows/conversation-starter.md +0 -69
- package/.agent/workflows/error-feedback.md +0 -578
- package/.agent/workflows/feature-development.md +0 -355
- package/.agent/workflows/git-workflow.md +0 -702
- package/.agent/workflows/multi-repo-workspace.md +0 -268
- package/.agent/workflows/plans.md +0 -709
- package/.agent/workflows/postflight.md +0 -604
- package/.agent/workflows/pr.md +0 -571
- package/.agent/workflows/preflight.md +0 -278
- package/.agent/workflows/ralph-loop.md +0 -773
- package/.agent/workflows/release.md +0 -498
- package/.agent/workflows/session-manager.md +0 -254
- package/.agent/workflows/session-review.md +0 -311
- package/.agent/workflows/sql-migrations.md +0 -631
- package/.agent/workflows/version-bump.md +0 -283
- package/.agent/workflows/wiki-update.md +0 -333
- package/.agent/workflows/worktree.md +0 -477
|
@@ -1,702 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: Master git workflow orchestrator - read when coding work begins
|
|
3
|
-
mode: subagent
|
|
4
|
-
tools:
|
|
5
|
-
read: true
|
|
6
|
-
write: false
|
|
7
|
-
edit: false
|
|
8
|
-
bash: true
|
|
9
|
-
glob: true
|
|
10
|
-
grep: true
|
|
11
|
-
webfetch: false
|
|
12
|
-
task: true
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# Git Workflow Orchestrator
|
|
16
|
-
|
|
17
|
-
<!-- AI-CONTEXT-START -->
|
|
18
|
-
|
|
19
|
-
## Quick Reference
|
|
20
|
-
|
|
21
|
-
- **Purpose**: Ensure safe, traceable git workflow for all file changes
|
|
22
|
-
- **Trigger**: Read this when conversation indicates file creation/modification in a git repo
|
|
23
|
-
- **Principle**: Every change on a branch, never directly on main
|
|
24
|
-
- **CRITICAL**: With parallel sessions, ALWAYS verify branch state before ANY file operation
|
|
25
|
-
|
|
26
|
-
**Pre-Edit Gate** (MANDATORY before ANY file edit/write/create):
|
|
27
|
-
|
|
28
|
-
```bash
|
|
29
|
-
git branch --show-current # If result is `main` → STOP
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
If on `main`: STOP. Present branch options before proceeding with any file changes.
|
|
33
|
-
|
|
34
|
-
**First Actions** (before any code changes):
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
# 1. Check current branch (PRE-EDIT GATE)
|
|
38
|
-
git branch --show-current
|
|
39
|
-
# If on main → STOP and create branch first
|
|
40
|
-
|
|
41
|
-
# 2. Check repo ownership
|
|
42
|
-
git remote -v | head -1
|
|
43
|
-
|
|
44
|
-
# 3. Check for uncommitted work
|
|
45
|
-
git status --short
|
|
46
|
-
|
|
47
|
-
# 4. Check for remote updates (parallel session safety)
|
|
48
|
-
git fetch origin
|
|
49
|
-
git log --oneline HEAD..origin/$(git branch --show-current) 2>/dev/null
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
**Parallel Session Safety**:
|
|
53
|
-
|
|
54
|
-
When running multiple OpenCode sessions on the same repo:
|
|
55
|
-
|
|
56
|
-
| Situation | Action |
|
|
57
|
-
|-----------|--------|
|
|
58
|
-
| Remote has new commits | Pull/rebase before continuing |
|
|
59
|
-
| Uncommitted local changes | Stash or commit before switching |
|
|
60
|
-
| Different session on same branch | Coordinate or use separate branches |
|
|
61
|
-
| Starting new work | Always create a new branch first |
|
|
62
|
-
| **Multiple parallel sessions** | **Use git worktrees** (see below) |
|
|
63
|
-
|
|
64
|
-
**Git Worktrees for Parallel Work** (DEFAULT):
|
|
65
|
-
|
|
66
|
-
**Core principle**: The main repo directory (`~/Git/{repo}/`) should ALWAYS stay on `main`. All feature work happens in worktree directories.
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
# Create separate working directory for a branch
|
|
70
|
-
~/.aidevops/agents/scripts/worktree-helper.sh add feature/my-feature
|
|
71
|
-
# Creates: ~/Git/{repo}-feature-my-feature/
|
|
72
|
-
|
|
73
|
-
# List all worktrees
|
|
74
|
-
~/.aidevops/agents/scripts/worktree-helper.sh list
|
|
75
|
-
|
|
76
|
-
# Each terminal/session works in its own directory
|
|
77
|
-
# No branch switching affects other sessions
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
**Why this matters**: If the main repo is left on a feature branch, the next session inherits that state. This causes "local changes would be overwritten" errors and breaks parallel workflows.
|
|
81
|
-
|
|
82
|
-
See `workflows/worktree.md` for full worktree workflow.
|
|
83
|
-
|
|
84
|
-
**Session-Branch Tracking**:
|
|
85
|
-
|
|
86
|
-
OpenCode auto-generates session titles from the first prompt. To sync session names with branches:
|
|
87
|
-
|
|
88
|
-
| Tool/Command | Purpose |
|
|
89
|
-
|--------------|---------|
|
|
90
|
-
| `session-rename_sync_branch` | **AI tool**: Auto-sync session name with current git branch |
|
|
91
|
-
| `session-rename` | **AI tool**: Set custom session title |
|
|
92
|
-
| `/sync-branch` | **Slash command**: Rename session to match current git branch |
|
|
93
|
-
| `/rename feature/xyz` | **Slash command**: Rename session to any title |
|
|
94
|
-
| `/sessions` (Ctrl+x l) | List all sessions by name |
|
|
95
|
-
|
|
96
|
-
| Workflow | How to Track |
|
|
97
|
-
|----------|--------------|
|
|
98
|
-
| **New session, known work** | Start with: `opencode --title "feature/my-feature"` |
|
|
99
|
-
| **Existing session, new branch** | Call `session-rename_sync_branch` tool after creating branch |
|
|
100
|
-
| **Multiple sessions** | Each session named after its branch |
|
|
101
|
-
| **Resume work** | `opencode -c` continues last session, or `-s <id>` for specific |
|
|
102
|
-
|
|
103
|
-
**Best Practice**: After creating a branch, call `session-rename_sync_branch` tool to sync session name.
|
|
104
|
-
|
|
105
|
-
**Scope Monitoring** (during session):
|
|
106
|
-
|
|
107
|
-
When work evolves significantly from the branch name/purpose:
|
|
108
|
-
|
|
109
|
-
| Signal | Example | Action |
|
|
110
|
-
|--------|---------|--------|
|
|
111
|
-
| Different feature area | Branch is `chore/update-deps`, now adding new API endpoint | Suggest new branch |
|
|
112
|
-
| Unrelated bug fix | Branch is `feature/user-auth`, found unrelated CSS bug | Suggest separate branch |
|
|
113
|
-
| Scope expansion | Branch is `bugfix/login-timeout`, now refactoring entire auth system | Suggest `refactor/` branch |
|
|
114
|
-
| Command/API rename | Branch is `chore/optimize-X`, now renaming unrelated commands | Suggest new branch |
|
|
115
|
-
|
|
116
|
-
**When detected**, proactively offer:
|
|
117
|
-
|
|
118
|
-
> This work (`{description}`) seems outside the scope of `{current-branch}` ({original-purpose}).
|
|
119
|
-
>
|
|
120
|
-
> 1. Create new branch `{suggested-type}/{suggested-name}` (recommended)
|
|
121
|
-
> 2. Continue on current branch (if intentionally expanding scope)
|
|
122
|
-
> 3. Stash changes and switch to existing branch
|
|
123
|
-
|
|
124
|
-
**Stash workflow** (if user chooses option 1 or 3):
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
git stash --include-untracked -m "WIP: {description}"
|
|
128
|
-
git checkout main && git pull origin main
|
|
129
|
-
git checkout -b {type}/{description}
|
|
130
|
-
git stash pop
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
**Self-check trigger**: Before each file edit, briefly consider: "Does this change align with `{branch-name}`?"
|
|
134
|
-
|
|
135
|
-
**Decision Tree**:
|
|
136
|
-
|
|
137
|
-
| Situation | Action |
|
|
138
|
-
|-----------|--------|
|
|
139
|
-
| On `main` branch | Suggest branch creation (see below) |
|
|
140
|
-
| On feature/bugfix branch | Continue, follow `branch.md` lifecycle |
|
|
141
|
-
| Issue URL pasted | Parse and create appropriate branch |
|
|
142
|
-
| Non-owner repo | Fork workflow (see `pr.md`) |
|
|
143
|
-
| New empty repo | Initialize with `main`, suggest `release/0.1.0` |
|
|
144
|
-
|
|
145
|
-
<!-- AI-CONTEXT-END -->
|
|
146
|
-
|
|
147
|
-
## Time Tracking Integration
|
|
148
|
-
|
|
149
|
-
When creating branches, record the `started:` timestamp in TODO.md or PLANS.md:
|
|
150
|
-
|
|
151
|
-
### Recording Start Time
|
|
152
|
-
|
|
153
|
-
After creating a branch, update the corresponding task in TODO.md:
|
|
154
|
-
|
|
155
|
-
```bash
|
|
156
|
-
# Find the task and add started: timestamp
|
|
157
|
-
# Before: - [ ] Add Ahrefs MCP server #seo ~4h
|
|
158
|
-
# After: - [ ] Add Ahrefs MCP server #seo ~4h started:2025-01-15T10:30Z
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
For PLANS.md entries, update the plan's status section:
|
|
162
|
-
|
|
163
|
-
```markdown
|
|
164
|
-
### [2025-01-15] User Authentication Overhaul
|
|
165
|
-
**Status:** In Progress
|
|
166
|
-
**Started:** 2025-01-15T10:30Z
|
|
167
|
-
**Branch:** feature/user-auth-overhaul
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
### Time Tracking Workflow
|
|
171
|
-
|
|
172
|
-
| Event | Action | Field Updated |
|
|
173
|
-
|-------|--------|---------------|
|
|
174
|
-
| Branch created | Record start time | `started:` |
|
|
175
|
-
| Work session ends | Log time spent | `logged:` (cumulative) |
|
|
176
|
-
| PR merged | Record completion | `completed:` |
|
|
177
|
-
| Release published | Calculate actual | `actual:` |
|
|
178
|
-
|
|
179
|
-
See `workflows/plans.md` for full time tracking format.
|
|
180
|
-
|
|
181
|
-
## Branch Naming from TODO.md and PLANS.md
|
|
182
|
-
|
|
183
|
-
When creating branches, derive names from planning files when available:
|
|
184
|
-
|
|
185
|
-
### Check Planning Files First
|
|
186
|
-
|
|
187
|
-
```bash
|
|
188
|
-
# Check TODO.md for matching task
|
|
189
|
-
grep -i "{keyword}" TODO.md
|
|
190
|
-
|
|
191
|
-
# Check PLANS.md for matching plan
|
|
192
|
-
grep -i "{keyword}" todo/PLANS.md
|
|
193
|
-
|
|
194
|
-
# Check for PRD/tasks files
|
|
195
|
-
ls todo/tasks/*{keyword}* 2>/dev/null
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
### Branch Name Derivation
|
|
199
|
-
|
|
200
|
-
| Source | Branch Name Pattern | Example |
|
|
201
|
-
|--------|---------------------|---------|
|
|
202
|
-
| TODO.md task | `{type}/{slugified-description}` | `feature/add-ahrefs-mcp-server` |
|
|
203
|
-
| PLANS.md entry | `{type}/{plan-slug}` | `feature/user-authentication-overhaul` |
|
|
204
|
-
| PRD file | `{type}/{prd-feature-name}` | `feature/export-csv` |
|
|
205
|
-
| Multiple tasks | `{type}/{summary-slug}` | `feature/seo-improvements` |
|
|
206
|
-
|
|
207
|
-
### Slugification Rules
|
|
208
|
-
|
|
209
|
-
- Lowercase all text
|
|
210
|
-
- Replace spaces with hyphens
|
|
211
|
-
- Remove special characters except hyphens
|
|
212
|
-
- Truncate to ~50 chars if needed
|
|
213
|
-
- Remove common words (the, a, an) if too long
|
|
214
|
-
|
|
215
|
-
**Examples:**
|
|
216
|
-
|
|
217
|
-
| Task/Plan | Generated Branch |
|
|
218
|
-
|-----------|------------------|
|
|
219
|
-
| `- [ ] Add Ahrefs MCP server integration #seo` | `feature/add-ahrefs-mcp-server` |
|
|
220
|
-
| `- [ ] Fix login timeout bug #auth` | `bugfix/fix-login-timeout` |
|
|
221
|
-
| `### [2025-01-15] User Authentication Overhaul` | `feature/user-authentication-overhaul` |
|
|
222
|
-
| `prd-export-csv.md` | `feature/export-csv` |
|
|
223
|
-
|
|
224
|
-
## Core Principle: Branch-First Development
|
|
225
|
-
|
|
226
|
-
Every code change should happen on a branch, enabling:
|
|
227
|
-
|
|
228
|
-
- **Safe parallel work** - Multiple developers without conflicts
|
|
229
|
-
- **Full traceability** - Every change linked to branch → PR → merge
|
|
230
|
-
- **Easy rollback** - Revert branches without affecting main
|
|
231
|
-
- **Code review** - PRs enable review before merge
|
|
232
|
-
- **Blame history** - Track who did what, when, and why
|
|
233
|
-
|
|
234
|
-
## Conversation Start: Git Context Check
|
|
235
|
-
|
|
236
|
-
When a conversation indicates file work will happen (code, docs, config, assets, etc.):
|
|
237
|
-
|
|
238
|
-
### Step 1: Detect Git Context
|
|
239
|
-
|
|
240
|
-
```bash
|
|
241
|
-
# Check if in a git repo
|
|
242
|
-
git rev-parse --is-inside-work-tree 2>/dev/null || echo "NOT_GIT_REPO"
|
|
243
|
-
|
|
244
|
-
# Get current branch
|
|
245
|
-
git branch --show-current
|
|
246
|
-
|
|
247
|
-
# Get repo root
|
|
248
|
-
git rev-parse --show-toplevel
|
|
249
|
-
```
|
|
250
|
-
|
|
251
|
-
### Step 2: Check for Existing Branches
|
|
252
|
-
|
|
253
|
-
Before suggesting a new branch, check for existing work that might match:
|
|
254
|
-
|
|
255
|
-
```bash
|
|
256
|
-
# List work-in-progress branches
|
|
257
|
-
git branch -a | grep -E "(feature|bugfix|hotfix|refactor|chore|experiment|release)/"
|
|
258
|
-
|
|
259
|
-
# Check for uncommitted changes
|
|
260
|
-
git status --short
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
### Step 3: Check Planning Files
|
|
264
|
-
|
|
265
|
-
Before suggesting branch names, check for matching tasks/plans:
|
|
266
|
-
|
|
267
|
-
```bash
|
|
268
|
-
# Check TODO.md In Progress section
|
|
269
|
-
grep -A 20 "## In Progress" TODO.md | grep "^\- \[ \]"
|
|
270
|
-
|
|
271
|
-
# Check TODO.md Backlog for matching work
|
|
272
|
-
grep -i "{user_request_keywords}" TODO.md
|
|
273
|
-
|
|
274
|
-
# Check PLANS.md for active plans
|
|
275
|
-
grep -A 5 "^### \[" todo/PLANS.md | grep -i "{user_request_keywords}"
|
|
276
|
-
```
|
|
277
|
-
|
|
278
|
-
### Step 4: Auto-Select with Override Options
|
|
279
|
-
|
|
280
|
-
**If on `main` branch**, auto-select best match and offer override:
|
|
281
|
-
|
|
282
|
-
> On `main`. Creating worktree for `feature/{best-match-name}` (from {source}).
|
|
283
|
-
>
|
|
284
|
-
> [Enter] to confirm, or:
|
|
285
|
-
> 1. Use different name
|
|
286
|
-
> 2. Continue on `main` (docs-only, not recommended for code)
|
|
287
|
-
|
|
288
|
-
Where `{source}` is one of:
|
|
289
|
-
- "TODO.md" - matched a task
|
|
290
|
-
- "PLANS.md" - matched an active plan
|
|
291
|
-
- "your request" - derived from conversation
|
|
292
|
-
|
|
293
|
-
**Note**: Always use worktrees, not `git checkout -b`. The main repo directory must stay on `main`.
|
|
294
|
-
|
|
295
|
-
**If existing branch matches**, auto-select it:
|
|
296
|
-
|
|
297
|
-
> Found existing branch: `feature/user-auth` (3 days old, 5 commits ahead)
|
|
298
|
-
>
|
|
299
|
-
> [Enter] to continue on this branch, or:
|
|
300
|
-
> 1. Create new branch instead
|
|
301
|
-
> 2. Use different existing branch
|
|
302
|
-
|
|
303
|
-
**If already on a work branch**, just continue:
|
|
304
|
-
|
|
305
|
-
> Continuing on `feature/user-auth`.
|
|
306
|
-
|
|
307
|
-
### User Response Handling
|
|
308
|
-
|
|
309
|
-
- **Number**: Execute that option
|
|
310
|
-
- **"yes"/"y"**: Execute option 1 (default/recommended)
|
|
311
|
-
- **Custom text**: Interpret as branch name or clarification
|
|
312
|
-
|
|
313
|
-
## Issue URL Handling
|
|
314
|
-
|
|
315
|
-
When user pastes a GitHub/GitLab/Gitea issue URL:
|
|
316
|
-
|
|
317
|
-
### Supported URL Patterns
|
|
318
|
-
|
|
319
|
-
| Platform | Pattern | Example |
|
|
320
|
-
|----------|---------|---------|
|
|
321
|
-
| GitHub | `github.com/{owner}/{repo}/issues/{num}` | `https://github.com/user/repo/issues/123` |
|
|
322
|
-
| GitLab | `gitlab.com/{owner}/{repo}/-/issues/{num}` | `https://gitlab.com/user/repo/-/issues/45` |
|
|
323
|
-
| Gitea | `{domain}/{owner}/{repo}/issues/{num}` | `https://git.example.com/user/repo/issues/67` |
|
|
324
|
-
| Self-hosted | `git.{domain}/*` or `git*.{domain}/*` | `https://git.company.com/team/project/issues/89` |
|
|
325
|
-
|
|
326
|
-
### Issue Workflow
|
|
327
|
-
|
|
328
|
-
```bash
|
|
329
|
-
# 1. Parse URL to extract: platform, owner, repo, issue_number
|
|
330
|
-
# Example: https://github.com/acme/widget/issues/42
|
|
331
|
-
|
|
332
|
-
# 2. Check if repo exists locally
|
|
333
|
-
REPO_PATH=~/Git/{repo}
|
|
334
|
-
if [[ -d "$REPO_PATH" ]]; then
|
|
335
|
-
cd "$REPO_PATH"
|
|
336
|
-
git fetch origin
|
|
337
|
-
else
|
|
338
|
-
# Clone to ~/Git/{repo}
|
|
339
|
-
gh repo clone {owner}/{repo} "$REPO_PATH" # GitHub
|
|
340
|
-
# glab repo clone {owner}/{repo} "$REPO_PATH" # GitLab
|
|
341
|
-
cd "$REPO_PATH"
|
|
342
|
-
fi
|
|
343
|
-
|
|
344
|
-
# 3. Determine branch type from issue
|
|
345
|
-
# - "bug" label → bugfix/
|
|
346
|
-
# - "feature"/"enhancement" label → feature/
|
|
347
|
-
# - Default → feature/
|
|
348
|
-
|
|
349
|
-
# 4. Create branch
|
|
350
|
-
git checkout main && git pull origin main
|
|
351
|
-
git checkout -b {type}/{issue_number}-{slug-from-title}
|
|
352
|
-
# Example: feature/42-add-user-dashboard
|
|
353
|
-
|
|
354
|
-
# 5. Inform user
|
|
355
|
-
echo "Created branch {type}/{issue_number}-{slug} linked to issue #{issue_number}"
|
|
356
|
-
```
|
|
357
|
-
|
|
358
|
-
### Platform Detection
|
|
359
|
-
|
|
360
|
-
```bash
|
|
361
|
-
# Detect platform from URL
|
|
362
|
-
detect_git_platform() {
|
|
363
|
-
local url="$1"
|
|
364
|
-
if [[ "$url" == *"github.com"* ]]; then
|
|
365
|
-
echo "github"
|
|
366
|
-
elif [[ "$url" == *"gitlab.com"* ]]; then
|
|
367
|
-
echo "gitlab"
|
|
368
|
-
elif [[ "$url" == *"gitea"* ]] || [[ "$url" == *"/issues/"* ]]; then
|
|
369
|
-
# Check if it's a Gitea instance
|
|
370
|
-
echo "gitea"
|
|
371
|
-
else
|
|
372
|
-
# Self-hosted - try to detect
|
|
373
|
-
echo "unknown"
|
|
374
|
-
fi
|
|
375
|
-
}
|
|
376
|
-
```
|
|
377
|
-
|
|
378
|
-
## Repository Ownership Check
|
|
379
|
-
|
|
380
|
-
Before pushing or creating PRs, check ownership:
|
|
381
|
-
|
|
382
|
-
```bash
|
|
383
|
-
# Get remote URL
|
|
384
|
-
REMOTE_URL=$(git remote get-url origin)
|
|
385
|
-
|
|
386
|
-
# Extract owner from URL
|
|
387
|
-
# GitHub: git@github.com:owner/repo.git or https://github.com/owner/repo.git
|
|
388
|
-
REPO_OWNER=$(echo "$REMOTE_URL" | sed -E 's/.*[:/]([^/]+)\/[^/]+\.git$/\1/')
|
|
389
|
-
|
|
390
|
-
# Get current user
|
|
391
|
-
CURRENT_USER=$(gh api user --jq '.login') # GitHub
|
|
392
|
-
# CURRENT_USER=$(glab api user --jq '.username') # GitLab
|
|
393
|
-
|
|
394
|
-
# Check if owner
|
|
395
|
-
if [[ "$REPO_OWNER" != "$CURRENT_USER" ]]; then
|
|
396
|
-
echo "NON_OWNER: Fork workflow required"
|
|
397
|
-
fi
|
|
398
|
-
```
|
|
399
|
-
|
|
400
|
-
**If non-owner**: See `workflows/pr.md` for fork workflow.
|
|
401
|
-
|
|
402
|
-
## New Repository Initialization
|
|
403
|
-
|
|
404
|
-
For new empty repositories:
|
|
405
|
-
|
|
406
|
-
```bash
|
|
407
|
-
# 1. Initialize with main branch
|
|
408
|
-
git init
|
|
409
|
-
git checkout -b main
|
|
410
|
-
|
|
411
|
-
# 2. Create initial commit
|
|
412
|
-
echo "# Project Name" > README.md
|
|
413
|
-
git add README.md
|
|
414
|
-
git commit -m "chore: initial commit"
|
|
415
|
-
|
|
416
|
-
# 3. Suggest first release branch
|
|
417
|
-
echo "Repository initialized. For your first version, create:"
|
|
418
|
-
echo " git checkout -b release/0.1.0"
|
|
419
|
-
```
|
|
420
|
-
|
|
421
|
-
### First Version Guidance
|
|
422
|
-
|
|
423
|
-
| Project State | Suggested Version | Branch |
|
|
424
|
-
|---------------|-------------------|--------|
|
|
425
|
-
| New project, no features | 0.1.0 | `release/0.1.0` |
|
|
426
|
-
| MVP ready | 1.0.0 | `release/1.0.0` |
|
|
427
|
-
| Existing project, first aidevops use | Current + patch | `release/X.Y.Z` |
|
|
428
|
-
|
|
429
|
-
## Branch Type Selection
|
|
430
|
-
|
|
431
|
-
When creating a branch, determine type from conversation context:
|
|
432
|
-
|
|
433
|
-
| If user mentions... | Branch Type | Example |
|
|
434
|
-
|---------------------|-------------|---------|
|
|
435
|
-
| "add", "new", "feature", "implement" | `feature/` | `feature/user-auth` |
|
|
436
|
-
| "fix", "bug", "broken", "error" | `bugfix/` | `bugfix/login-timeout` |
|
|
437
|
-
| "urgent", "critical", "production down" | `hotfix/` | `hotfix/security-patch` |
|
|
438
|
-
| "refactor", "cleanup", "restructure" | `refactor/` | `refactor/api-cleanup` |
|
|
439
|
-
| "docs", "readme", "documentation" | `chore/` | `chore/update-docs` |
|
|
440
|
-
| "update deps", "config", "maintenance" | `chore/` | `chore/update-deps` |
|
|
441
|
-
| "try", "experiment", "POC", "spike" | `experiment/` | `experiment/new-ui` |
|
|
442
|
-
| "release", "version" | `release/` | `release/1.2.0` |
|
|
443
|
-
|
|
444
|
-
See `workflows/branch.md` for naming conventions.
|
|
445
|
-
|
|
446
|
-
## Workflow Lifecycle
|
|
447
|
-
|
|
448
|
-
```text
|
|
449
|
-
┌─────────────────────────────────────────────────────────────────────────────┐
|
|
450
|
-
│ COMPLETE GIT WORKFLOW │
|
|
451
|
-
├─────────────────────────────────────────────────────────────────────────────┤
|
|
452
|
-
│ │
|
|
453
|
-
│ 1. CONVERSATION START │
|
|
454
|
-
│ ├── Detect git repo context │
|
|
455
|
-
│ ├── Check current branch (warn if on main) │
|
|
456
|
-
│ ├── Check for existing WIP branches │
|
|
457
|
-
│ └── Suggest/create appropriate branch │
|
|
458
|
-
│ └── See: workflows/branch.md │
|
|
459
|
-
│ │
|
|
460
|
-
│ 2. DEVELOPMENT │
|
|
461
|
-
│ ├── Work on feature/bugfix/etc branch │
|
|
462
|
-
│ ├── Regular commits with conventional format │
|
|
463
|
-
│ └── Keep branch updated with main │
|
|
464
|
-
│ └── See: workflows/branch.md │
|
|
465
|
-
│ │
|
|
466
|
-
│ 3. PREFLIGHT (before push) │
|
|
467
|
-
│ ├── Run linters-local.sh │
|
|
468
|
-
│ ├── Validate code quality │
|
|
469
|
-
│ └── Check for secrets │
|
|
470
|
-
│ └── See: workflows/preflight.md │
|
|
471
|
-
│ │
|
|
472
|
-
│ 4. PUSH & PR │
|
|
473
|
-
│ ├── Push branch to origin (or fork if non-owner) │
|
|
474
|
-
│ ├── Create PR/MR │
|
|
475
|
-
│ └── Run code-audit-remote │
|
|
476
|
-
│ └── See: workflows/pr.md │
|
|
477
|
-
│ │
|
|
478
|
-
│ 5. REVIEW & MERGE │
|
|
479
|
-
│ ├── Address review feedback │
|
|
480
|
-
│ ├── Squash merge to main │
|
|
481
|
-
│ └── Delete feature branch │
|
|
482
|
-
│ └── See: workflows/pr.md │
|
|
483
|
-
│ │
|
|
484
|
-
│ 6. RELEASE PREPARATION (when ready) │
|
|
485
|
-
│ ├── Create release/X.Y.Z branch │
|
|
486
|
-
│ ├── Select branches to include │
|
|
487
|
-
│ ├── Update version files │
|
|
488
|
-
│ └── Generate changelog │
|
|
489
|
-
│ └── See: workflows/version-bump.md │
|
|
490
|
-
│ │
|
|
491
|
-
│ 7. RELEASE │
|
|
492
|
-
│ ├── Merge release branch to main │
|
|
493
|
-
│ ├── Tag main with vX.Y.Z │
|
|
494
|
-
│ ├── Create GitHub/GitLab release │
|
|
495
|
-
│ └── Delete release branch │
|
|
496
|
-
│ └── See: workflows/release.md │
|
|
497
|
-
│ │
|
|
498
|
-
│ 8. POSTFLIGHT │
|
|
499
|
-
│ ├── Verify CI/CD passes │
|
|
500
|
-
│ ├── Check quality gates │
|
|
501
|
-
│ └── Offer cleanup of merged branches │
|
|
502
|
-
│ └── See: workflows/postflight.md │
|
|
503
|
-
│ │
|
|
504
|
-
│ 9. CLEANUP │
|
|
505
|
-
│ ├── Delete merged branches (local + remote) │
|
|
506
|
-
│ ├── Prune stale remote refs │
|
|
507
|
-
│ └── Update local main │
|
|
508
|
-
│ │
|
|
509
|
-
└─────────────────────────────────────────────────────────────────────────────┘
|
|
510
|
-
```
|
|
511
|
-
|
|
512
|
-
## Post-Change Workflow
|
|
513
|
-
|
|
514
|
-
After completing file changes, run preflight automatically:
|
|
515
|
-
|
|
516
|
-
> Running preflight checks...
|
|
517
|
-
|
|
518
|
-
**If preflight passes**, auto-commit with suggested message:
|
|
519
|
-
|
|
520
|
-
> Preflight passed. Committing: "{suggested message}"
|
|
521
|
-
>
|
|
522
|
-
> [Enter] to confirm, or:
|
|
523
|
-
> 1. Use different message
|
|
524
|
-
> 2. Make more changes first
|
|
525
|
-
|
|
526
|
-
**If preflight fails**, show issues and offer fixes:
|
|
527
|
-
|
|
528
|
-
> Preflight found {N} issues:
|
|
529
|
-
> - {issue 1}
|
|
530
|
-
> - {issue 2}
|
|
531
|
-
>
|
|
532
|
-
> 1. Fix automatically (if possible)
|
|
533
|
-
> 2. View detailed report
|
|
534
|
-
> 3. Skip and commit anyway (not recommended)
|
|
535
|
-
|
|
536
|
-
**After successful commit**, auto-push if on a branch:
|
|
537
|
-
|
|
538
|
-
> Committed and pushed to `{branch}`.
|
|
539
|
-
>
|
|
540
|
-
> 1. Create PR
|
|
541
|
-
> 2. Continue working
|
|
542
|
-
> 3. Done for now
|
|
543
|
-
|
|
544
|
-
**If changes include `.agent/` files** (in aidevops repo or repos with local agents):
|
|
545
|
-
|
|
546
|
-
> Agent files modified. Run `./setup.sh` to deploy to `~/.aidevops/agents/`?
|
|
547
|
-
>
|
|
548
|
-
> 1. Run setup.sh now (recommended)
|
|
549
|
-
> 2. Remind me after merge
|
|
550
|
-
> 3. Skip (I'll do it manually)
|
|
551
|
-
|
|
552
|
-
This ensures the deployed agents at `~/.aidevops/agents/` stay in sync with source.
|
|
553
|
-
|
|
554
|
-
## Branch Cleanup
|
|
555
|
-
|
|
556
|
-
After merge and successful postflight:
|
|
557
|
-
|
|
558
|
-
```bash
|
|
559
|
-
# 1. Switch to main and update
|
|
560
|
-
git checkout main
|
|
561
|
-
git pull origin main
|
|
562
|
-
|
|
563
|
-
# 2. List merged branches
|
|
564
|
-
git branch --merged main | grep -vE "^\*|main|develop"
|
|
565
|
-
|
|
566
|
-
# 3. Delete merged branches (with confirmation)
|
|
567
|
-
# For each branch:
|
|
568
|
-
git branch -d {branch-name} # Local
|
|
569
|
-
git push origin --delete {branch-name} # Remote (if not auto-deleted)
|
|
570
|
-
|
|
571
|
-
# 4. Prune stale remote refs
|
|
572
|
-
git remote prune origin
|
|
573
|
-
```
|
|
574
|
-
|
|
575
|
-
### Cleanup Decision Tree
|
|
576
|
-
|
|
577
|
-
| Branch State | Action |
|
|
578
|
-
|--------------|--------|
|
|
579
|
-
| Merged + postflight passed | Safe to delete |
|
|
580
|
-
| Merged + postflight failed | Keep, may need hotfix |
|
|
581
|
-
| Unmerged + stale (>30 days) | Ask user about status |
|
|
582
|
-
| Unmerged + active | Keep |
|
|
583
|
-
|
|
584
|
-
## User Experience Levels
|
|
585
|
-
|
|
586
|
-
These workflows support all skill levels:
|
|
587
|
-
|
|
588
|
-
### New Developers (Vibe-Coders)
|
|
589
|
-
|
|
590
|
-
- AI handles branch creation automatically
|
|
591
|
-
- Clear explanations of why branching matters
|
|
592
|
-
- Guided through PR process
|
|
593
|
-
- Protected from common mistakes
|
|
594
|
-
|
|
595
|
-
### Experienced Developers
|
|
596
|
-
|
|
597
|
-
- Can override suggestions when needed
|
|
598
|
-
- Familiar patterns (GitFlow-inspired)
|
|
599
|
-
- Efficient commands without excessive prompts
|
|
600
|
-
- Full control when requested
|
|
601
|
-
|
|
602
|
-
### Team Collaboration
|
|
603
|
-
|
|
604
|
-
- Consistent branch naming across team
|
|
605
|
-
- Clear PR descriptions for reviewers
|
|
606
|
-
- Traceable history for debugging
|
|
607
|
-
- Easy handoff between developers
|
|
608
|
-
|
|
609
|
-
## Override Handling
|
|
610
|
-
|
|
611
|
-
When user wants to work directly on main:
|
|
612
|
-
|
|
613
|
-
```text
|
|
614
|
-
User: "Just make the change on main, I know what I'm doing"
|
|
615
|
-
|
|
616
|
-
AI: "Understood. I'll proceed on main. Note that without a branch:
|
|
617
|
-
- Changes are harder to rollback
|
|
618
|
-
- No PR review before merge
|
|
619
|
-
- Harder to collaborate or get help
|
|
620
|
-
|
|
621
|
-
Proceeding with changes on main..."
|
|
622
|
-
```
|
|
623
|
-
|
|
624
|
-
**Never block** the user - these are guidelines, not restrictions.
|
|
625
|
-
|
|
626
|
-
## Database Schema Changes
|
|
627
|
-
|
|
628
|
-
When changes include database schema modifications:
|
|
629
|
-
|
|
630
|
-
### Detection
|
|
631
|
-
|
|
632
|
-
Look for:
|
|
633
|
-
- Files in `schemas/` (declarative schema files)
|
|
634
|
-
- Files in `migrations/`, `database/migrations/`, or similar
|
|
635
|
-
- SQL files with schema changes (`CREATE TABLE`, `ALTER TABLE`, etc.)
|
|
636
|
-
- ORM schema files (Drizzle `.ts`, Prisma `.prisma`, etc.)
|
|
637
|
-
|
|
638
|
-
### Declarative Schema Workflow (Recommended)
|
|
639
|
-
|
|
640
|
-
When `schemas/` directory exists (created by `aidevops init database`):
|
|
641
|
-
|
|
642
|
-
1. **Edit schema files** in `schemas/`
|
|
643
|
-
2. **Generate migration** via diff command:
|
|
644
|
-
- Supabase: `supabase db diff -f description`
|
|
645
|
-
- Drizzle: `npx drizzle-kit generate`
|
|
646
|
-
- Atlas: `atlas migrate diff description`
|
|
647
|
-
- Prisma: `npx prisma migrate dev --name description`
|
|
648
|
-
3. **Review generated migration** in `migrations/`
|
|
649
|
-
4. **Apply migration** locally
|
|
650
|
-
5. **Commit both** schema and migration files together
|
|
651
|
-
|
|
652
|
-
### Branch Naming for Migrations
|
|
653
|
-
|
|
654
|
-
| Change Type | Branch | Example |
|
|
655
|
-
|-------------|--------|---------|
|
|
656
|
-
| New table | `feature/` | `feature/add-user-preferences-table` |
|
|
657
|
-
| Schema fix | `bugfix/` | `bugfix/fix-orders-foreign-key` |
|
|
658
|
-
| Data backfill | `chore/` | `chore/backfill-user-status` |
|
|
659
|
-
|
|
660
|
-
### Pre-Push Checklist for Migrations
|
|
661
|
-
|
|
662
|
-
Before pushing migration files:
|
|
663
|
-
|
|
664
|
-
1. ✅ Schema file updated (if using declarative approach)
|
|
665
|
-
2. ✅ Migration generated via diff (not written manually)
|
|
666
|
-
3. ✅ Migration reviewed for unexpected changes
|
|
667
|
-
4. ✅ Tested locally (apply, rollback, apply again)
|
|
668
|
-
5. ✅ No modifications to already-pushed migrations
|
|
669
|
-
6. ✅ Timestamp is current (regenerate if rebasing)
|
|
670
|
-
|
|
671
|
-
### Critical Rules
|
|
672
|
-
|
|
673
|
-
- **NEVER modify migrations that have been pushed/deployed.** Create a new migration to fix issues.
|
|
674
|
-
- **ALWAYS commit schema and migration files together** to keep them in sync.
|
|
675
|
-
- **ALWAYS review generated migrations** before committing.
|
|
676
|
-
|
|
677
|
-
See `workflows/sql-migrations.md` for full migration workflow.
|
|
678
|
-
|
|
679
|
-
## Related Workflows
|
|
680
|
-
|
|
681
|
-
| Workflow | When to Read |
|
|
682
|
-
|----------|--------------|
|
|
683
|
-
| `branch.md` | Branch naming, creation, lifecycle |
|
|
684
|
-
| `branch/release.md` | Release branch specifics |
|
|
685
|
-
| `pr.md` | PR creation, review, merge, fork workflow |
|
|
686
|
-
| `preflight.md` | Quality checks before push |
|
|
687
|
-
| `postflight.md` | Verification after release |
|
|
688
|
-
| `version-bump.md` | Version management, release branches |
|
|
689
|
-
| `release.md` | Full release process |
|
|
690
|
-
| `feature-development.md` | Feature implementation patterns |
|
|
691
|
-
| `bug-fixing.md` | Bug fix patterns |
|
|
692
|
-
| `sql-migrations.md` | Database schema version control |
|
|
693
|
-
|
|
694
|
-
## Platform CLI Reference
|
|
695
|
-
|
|
696
|
-
| Platform | CLI | Branch | PR | Release |
|
|
697
|
-
|----------|-----|--------|-----|---------|
|
|
698
|
-
| GitHub | `gh` | `git checkout -b` | `gh pr create` | `gh release create` |
|
|
699
|
-
| GitLab | `glab` | `git checkout -b` | `glab mr create` | `glab release create` |
|
|
700
|
-
| Gitea | `tea` | `git checkout -b` | `tea pulls create` | `tea releases create` |
|
|
701
|
-
|
|
702
|
-
See `tools/git.md` for detailed CLI usage.
|