aidevops 2.52.1
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/.agent/AGENTS.md +614 -0
- package/.agent/accounts.md +65 -0
- package/.agent/aidevops/add-new-mcp-to-aidevops.md +456 -0
- package/.agent/aidevops/api-integrations.md +335 -0
- package/.agent/aidevops/architecture.md +510 -0
- package/.agent/aidevops/configs.md +274 -0
- package/.agent/aidevops/docs.md +244 -0
- package/.agent/aidevops/extension.md +311 -0
- package/.agent/aidevops/mcp-integrations.md +340 -0
- package/.agent/aidevops/mcp-troubleshooting.md +162 -0
- package/.agent/aidevops/memory-patterns.md +172 -0
- package/.agent/aidevops/providers.md +217 -0
- package/.agent/aidevops/recommendations.md +321 -0
- package/.agent/aidevops/requirements.md +301 -0
- package/.agent/aidevops/resources.md +214 -0
- package/.agent/aidevops/security-requirements.md +174 -0
- package/.agent/aidevops/security.md +350 -0
- package/.agent/aidevops/service-links.md +400 -0
- package/.agent/aidevops/services.md +357 -0
- package/.agent/aidevops/setup.md +153 -0
- package/.agent/aidevops/troubleshooting.md +389 -0
- package/.agent/aidevops.md +124 -0
- package/.agent/build-plus.md +244 -0
- package/.agent/content/guidelines.md +109 -0
- package/.agent/content.md +87 -0
- package/.agent/health.md +59 -0
- package/.agent/legal.md +59 -0
- package/.agent/loop-state/full-loop.local.md +16 -0
- package/.agent/loop-state/ralph-loop.local.md +10 -0
- package/.agent/marketing.md +440 -0
- package/.agent/memory/README.md +260 -0
- package/.agent/onboarding.md +796 -0
- package/.agent/plan-plus.md +245 -0
- package/.agent/research.md +100 -0
- package/.agent/sales.md +333 -0
- package/.agent/scripts/101domains-helper.sh +701 -0
- package/.agent/scripts/add-missing-returns.sh +140 -0
- package/.agent/scripts/agent-browser-helper.sh +311 -0
- package/.agent/scripts/agno-setup.sh +712 -0
- package/.agent/scripts/ahrefs-mcp-wrapper.js +168 -0
- package/.agent/scripts/aidevops-update-check.sh +71 -0
- package/.agent/scripts/ampcode-cli.sh +522 -0
- package/.agent/scripts/auto-version-bump.sh +156 -0
- package/.agent/scripts/autogen-helper.sh +512 -0
- package/.agent/scripts/beads-sync-helper.sh +596 -0
- package/.agent/scripts/closte-helper.sh +5 -0
- package/.agent/scripts/cloudron-helper.sh +321 -0
- package/.agent/scripts/codacy-cli-chunked.sh +581 -0
- package/.agent/scripts/codacy-cli.sh +442 -0
- package/.agent/scripts/code-audit-helper.sh +5 -0
- package/.agent/scripts/coderabbit-cli.sh +417 -0
- package/.agent/scripts/coderabbit-pro-analysis.sh +238 -0
- package/.agent/scripts/commands/code-simplifier.md +86 -0
- package/.agent/scripts/commands/full-loop.md +246 -0
- package/.agent/scripts/commands/postflight-loop.md +103 -0
- package/.agent/scripts/commands/recall.md +182 -0
- package/.agent/scripts/commands/remember.md +132 -0
- package/.agent/scripts/commands/save-todo.md +175 -0
- package/.agent/scripts/commands/session-review.md +154 -0
- package/.agent/scripts/comprehensive-quality-fix.sh +106 -0
- package/.agent/scripts/context-builder-helper.sh +522 -0
- package/.agent/scripts/coolify-cli-helper.sh +674 -0
- package/.agent/scripts/coolify-helper.sh +380 -0
- package/.agent/scripts/crawl4ai-examples.sh +401 -0
- package/.agent/scripts/crawl4ai-helper.sh +1078 -0
- package/.agent/scripts/crewai-helper.sh +681 -0
- package/.agent/scripts/dev-browser-helper.sh +513 -0
- package/.agent/scripts/dns-helper.sh +396 -0
- package/.agent/scripts/domain-research-helper.sh +917 -0
- package/.agent/scripts/dspy-helper.sh +285 -0
- package/.agent/scripts/dspyground-helper.sh +291 -0
- package/.agent/scripts/eeat-score-helper.sh +1242 -0
- package/.agent/scripts/efficient-return-fix.sh +92 -0
- package/.agent/scripts/extract-opencode-prompts.sh +128 -0
- package/.agent/scripts/find-missing-returns.sh +113 -0
- package/.agent/scripts/fix-auth-headers.sh +104 -0
- package/.agent/scripts/fix-common-strings.sh +254 -0
- package/.agent/scripts/fix-content-type.sh +100 -0
- package/.agent/scripts/fix-error-messages.sh +130 -0
- package/.agent/scripts/fix-misplaced-returns.sh +74 -0
- package/.agent/scripts/fix-remaining-literals.sh +152 -0
- package/.agent/scripts/fix-return-statements.sh +41 -0
- package/.agent/scripts/fix-s131-default-cases.sh +249 -0
- package/.agent/scripts/fix-sc2155-simple.sh +102 -0
- package/.agent/scripts/fix-shellcheck-critical.sh +187 -0
- package/.agent/scripts/fix-string-literals.sh +273 -0
- package/.agent/scripts/full-loop-helper.sh +773 -0
- package/.agent/scripts/generate-opencode-agents.sh +497 -0
- package/.agent/scripts/generate-opencode-commands.sh +1629 -0
- package/.agent/scripts/generate-skills.sh +366 -0
- package/.agent/scripts/git-platforms-helper.sh +640 -0
- package/.agent/scripts/gitea-cli-helper.sh +743 -0
- package/.agent/scripts/github-cli-helper.sh +702 -0
- package/.agent/scripts/gitlab-cli-helper.sh +682 -0
- package/.agent/scripts/gsc-add-user-helper.sh +325 -0
- package/.agent/scripts/gsc-sitemap-helper.sh +678 -0
- package/.agent/scripts/hetzner-helper.sh +485 -0
- package/.agent/scripts/hostinger-helper.sh +229 -0
- package/.agent/scripts/keyword-research-helper.sh +1815 -0
- package/.agent/scripts/langflow-helper.sh +544 -0
- package/.agent/scripts/linkedin-automation.py +241 -0
- package/.agent/scripts/linter-manager.sh +599 -0
- package/.agent/scripts/linters-local.sh +434 -0
- package/.agent/scripts/list-keys-helper.sh +488 -0
- package/.agent/scripts/local-browser-automation.py +339 -0
- package/.agent/scripts/localhost-helper.sh +744 -0
- package/.agent/scripts/loop-common.sh +806 -0
- package/.agent/scripts/mainwp-helper.sh +728 -0
- package/.agent/scripts/markdown-formatter.sh +338 -0
- package/.agent/scripts/markdown-lint-fix.sh +311 -0
- package/.agent/scripts/mass-fix-returns.sh +58 -0
- package/.agent/scripts/mcp-diagnose.sh +167 -0
- package/.agent/scripts/mcp-inspector-helper.sh +449 -0
- package/.agent/scripts/memory-helper.sh +650 -0
- package/.agent/scripts/monitor-code-review.sh +255 -0
- package/.agent/scripts/onboarding-helper.sh +706 -0
- package/.agent/scripts/opencode-github-setup-helper.sh +797 -0
- package/.agent/scripts/opencode-test-helper.sh +213 -0
- package/.agent/scripts/pagespeed-helper.sh +464 -0
- package/.agent/scripts/pandoc-helper.sh +362 -0
- package/.agent/scripts/postflight-check.sh +555 -0
- package/.agent/scripts/pre-commit-hook.sh +259 -0
- package/.agent/scripts/pre-edit-check.sh +169 -0
- package/.agent/scripts/qlty-cli.sh +356 -0
- package/.agent/scripts/quality-cli-manager.sh +525 -0
- package/.agent/scripts/quality-feedback-helper.sh +462 -0
- package/.agent/scripts/quality-fix.sh +263 -0
- package/.agent/scripts/quality-loop-helper.sh +1108 -0
- package/.agent/scripts/ralph-loop-helper.sh +836 -0
- package/.agent/scripts/ralph-upstream-check.sh +341 -0
- package/.agent/scripts/secretlint-helper.sh +847 -0
- package/.agent/scripts/servers-helper.sh +241 -0
- package/.agent/scripts/ses-helper.sh +619 -0
- package/.agent/scripts/session-review-helper.sh +404 -0
- package/.agent/scripts/setup-linters-wizard.sh +379 -0
- package/.agent/scripts/setup-local-api-keys.sh +330 -0
- package/.agent/scripts/setup-mcp-integrations.sh +472 -0
- package/.agent/scripts/shared-constants.sh +246 -0
- package/.agent/scripts/site-crawler-helper.sh +1487 -0
- package/.agent/scripts/snyk-helper.sh +940 -0
- package/.agent/scripts/sonarcloud-autofix.sh +193 -0
- package/.agent/scripts/sonarcloud-cli.sh +191 -0
- package/.agent/scripts/sonarscanner-cli.sh +455 -0
- package/.agent/scripts/spaceship-helper.sh +747 -0
- package/.agent/scripts/stagehand-helper.sh +321 -0
- package/.agent/scripts/stagehand-python-helper.sh +321 -0
- package/.agent/scripts/stagehand-python-setup.sh +441 -0
- package/.agent/scripts/stagehand-setup.sh +439 -0
- package/.agent/scripts/system-cleanup.sh +340 -0
- package/.agent/scripts/terminal-title-helper.sh +388 -0
- package/.agent/scripts/terminal-title-setup.sh +549 -0
- package/.agent/scripts/test-stagehand-both-integration.sh +317 -0
- package/.agent/scripts/test-stagehand-integration.sh +309 -0
- package/.agent/scripts/test-stagehand-python-integration.sh +341 -0
- package/.agent/scripts/todo-ready.sh +263 -0
- package/.agent/scripts/tool-version-check.sh +362 -0
- package/.agent/scripts/toon-helper.sh +469 -0
- package/.agent/scripts/twilio-helper.sh +917 -0
- package/.agent/scripts/updown-helper.sh +279 -0
- package/.agent/scripts/validate-mcp-integrations.sh +250 -0
- package/.agent/scripts/validate-version-consistency.sh +131 -0
- package/.agent/scripts/vaultwarden-helper.sh +597 -0
- package/.agent/scripts/vercel-cli-helper.sh +816 -0
- package/.agent/scripts/verify-mirrors.sh +169 -0
- package/.agent/scripts/version-manager.sh +831 -0
- package/.agent/scripts/webhosting-helper.sh +471 -0
- package/.agent/scripts/webhosting-verify.sh +238 -0
- package/.agent/scripts/wordpress-mcp-helper.sh +508 -0
- package/.agent/scripts/worktree-helper.sh +595 -0
- package/.agent/scripts/worktree-sessions.sh +577 -0
- package/.agent/seo/dataforseo.md +215 -0
- package/.agent/seo/domain-research.md +532 -0
- package/.agent/seo/eeat-score.md +659 -0
- package/.agent/seo/google-search-console.md +366 -0
- package/.agent/seo/gsc-sitemaps.md +282 -0
- package/.agent/seo/keyword-research.md +521 -0
- package/.agent/seo/serper.md +278 -0
- package/.agent/seo/site-crawler.md +387 -0
- package/.agent/seo.md +236 -0
- package/.agent/services/accounting/quickfile.md +159 -0
- package/.agent/services/communications/telfon.md +470 -0
- package/.agent/services/communications/twilio.md +569 -0
- package/.agent/services/crm/fluentcrm.md +449 -0
- package/.agent/services/email/ses.md +399 -0
- package/.agent/services/hosting/101domains.md +378 -0
- package/.agent/services/hosting/closte.md +177 -0
- package/.agent/services/hosting/cloudflare.md +251 -0
- package/.agent/services/hosting/cloudron.md +478 -0
- package/.agent/services/hosting/dns-providers.md +335 -0
- package/.agent/services/hosting/domain-purchasing.md +344 -0
- package/.agent/services/hosting/hetzner.md +327 -0
- package/.agent/services/hosting/hostinger.md +287 -0
- package/.agent/services/hosting/localhost.md +419 -0
- package/.agent/services/hosting/spaceship.md +353 -0
- package/.agent/services/hosting/webhosting.md +330 -0
- package/.agent/social-media.md +69 -0
- package/.agent/templates/plans-template.md +114 -0
- package/.agent/templates/prd-template.md +129 -0
- package/.agent/templates/tasks-template.md +108 -0
- package/.agent/templates/todo-template.md +89 -0
- package/.agent/tools/ai-assistants/agno.md +471 -0
- package/.agent/tools/ai-assistants/capsolver.md +326 -0
- package/.agent/tools/ai-assistants/configuration.md +221 -0
- package/.agent/tools/ai-assistants/overview.md +209 -0
- package/.agent/tools/ai-assistants/status.md +171 -0
- package/.agent/tools/ai-assistants/windsurf.md +193 -0
- package/.agent/tools/ai-orchestration/autogen.md +406 -0
- package/.agent/tools/ai-orchestration/crewai.md +445 -0
- package/.agent/tools/ai-orchestration/langflow.md +405 -0
- package/.agent/tools/ai-orchestration/openprose.md +487 -0
- package/.agent/tools/ai-orchestration/overview.md +362 -0
- package/.agent/tools/ai-orchestration/packaging.md +647 -0
- package/.agent/tools/browser/agent-browser.md +464 -0
- package/.agent/tools/browser/browser-automation.md +400 -0
- package/.agent/tools/browser/chrome-devtools.md +282 -0
- package/.agent/tools/browser/crawl4ai-integration.md +422 -0
- package/.agent/tools/browser/crawl4ai-resources.md +277 -0
- package/.agent/tools/browser/crawl4ai-usage.md +416 -0
- package/.agent/tools/browser/crawl4ai.md +585 -0
- package/.agent/tools/browser/dev-browser.md +341 -0
- package/.agent/tools/browser/pagespeed.md +260 -0
- package/.agent/tools/browser/playwright.md +266 -0
- package/.agent/tools/browser/playwriter.md +310 -0
- package/.agent/tools/browser/stagehand-examples.md +456 -0
- package/.agent/tools/browser/stagehand-python.md +483 -0
- package/.agent/tools/browser/stagehand.md +421 -0
- package/.agent/tools/build-agent/agent-review.md +224 -0
- package/.agent/tools/build-agent/build-agent.md +784 -0
- package/.agent/tools/build-mcp/aidevops-plugin.md +476 -0
- package/.agent/tools/build-mcp/api-wrapper.md +445 -0
- package/.agent/tools/build-mcp/build-mcp.md +240 -0
- package/.agent/tools/build-mcp/deployment.md +401 -0
- package/.agent/tools/build-mcp/server-patterns.md +632 -0
- package/.agent/tools/build-mcp/transports.md +366 -0
- package/.agent/tools/code-review/auditing.md +383 -0
- package/.agent/tools/code-review/automation.md +219 -0
- package/.agent/tools/code-review/best-practices.md +203 -0
- package/.agent/tools/code-review/codacy.md +151 -0
- package/.agent/tools/code-review/code-simplifier.md +174 -0
- package/.agent/tools/code-review/code-standards.md +309 -0
- package/.agent/tools/code-review/coderabbit.md +101 -0
- package/.agent/tools/code-review/management.md +155 -0
- package/.agent/tools/code-review/qlty.md +248 -0
- package/.agent/tools/code-review/secretlint.md +565 -0
- package/.agent/tools/code-review/setup.md +250 -0
- package/.agent/tools/code-review/snyk.md +563 -0
- package/.agent/tools/code-review/tools.md +230 -0
- package/.agent/tools/content/summarize.md +353 -0
- package/.agent/tools/context/augment-context-engine.md +468 -0
- package/.agent/tools/context/context-builder-agent.md +76 -0
- package/.agent/tools/context/context-builder.md +375 -0
- package/.agent/tools/context/context7.md +371 -0
- package/.agent/tools/context/dspy.md +302 -0
- package/.agent/tools/context/dspyground.md +374 -0
- package/.agent/tools/context/llm-tldr.md +219 -0
- package/.agent/tools/context/osgrep.md +488 -0
- package/.agent/tools/context/prompt-optimization.md +338 -0
- package/.agent/tools/context/toon.md +292 -0
- package/.agent/tools/conversion/pandoc.md +304 -0
- package/.agent/tools/credentials/api-key-management.md +154 -0
- package/.agent/tools/credentials/api-key-setup.md +224 -0
- package/.agent/tools/credentials/environment-variables.md +180 -0
- package/.agent/tools/credentials/vaultwarden.md +382 -0
- package/.agent/tools/data-extraction/outscraper.md +974 -0
- package/.agent/tools/deployment/coolify-cli.md +388 -0
- package/.agent/tools/deployment/coolify-setup.md +353 -0
- package/.agent/tools/deployment/coolify.md +345 -0
- package/.agent/tools/deployment/vercel.md +390 -0
- package/.agent/tools/git/authentication.md +132 -0
- package/.agent/tools/git/gitea-cli.md +193 -0
- package/.agent/tools/git/github-actions.md +207 -0
- package/.agent/tools/git/github-cli.md +223 -0
- package/.agent/tools/git/gitlab-cli.md +190 -0
- package/.agent/tools/git/opencode-github-security.md +350 -0
- package/.agent/tools/git/opencode-github.md +328 -0
- package/.agent/tools/git/opencode-gitlab.md +252 -0
- package/.agent/tools/git/security.md +196 -0
- package/.agent/tools/git.md +207 -0
- package/.agent/tools/opencode/oh-my-opencode.md +375 -0
- package/.agent/tools/opencode/opencode-anthropic-auth.md +446 -0
- package/.agent/tools/opencode/opencode.md +651 -0
- package/.agent/tools/social-media/bird.md +437 -0
- package/.agent/tools/task-management/beads.md +336 -0
- package/.agent/tools/terminal/terminal-title.md +251 -0
- package/.agent/tools/ui/shadcn.md +196 -0
- package/.agent/tools/ui/ui-skills.md +115 -0
- package/.agent/tools/wordpress/localwp.md +311 -0
- package/.agent/tools/wordpress/mainwp.md +391 -0
- package/.agent/tools/wordpress/scf.md +527 -0
- package/.agent/tools/wordpress/wp-admin.md +729 -0
- package/.agent/tools/wordpress/wp-dev.md +940 -0
- package/.agent/tools/wordpress/wp-preferred.md +398 -0
- package/.agent/tools/wordpress.md +95 -0
- package/.agent/workflows/branch/bugfix.md +63 -0
- package/.agent/workflows/branch/chore.md +95 -0
- package/.agent/workflows/branch/experiment.md +115 -0
- package/.agent/workflows/branch/feature.md +59 -0
- package/.agent/workflows/branch/hotfix.md +98 -0
- package/.agent/workflows/branch/refactor.md +92 -0
- package/.agent/workflows/branch/release.md +96 -0
- package/.agent/workflows/branch.md +347 -0
- package/.agent/workflows/bug-fixing.md +267 -0
- package/.agent/workflows/changelog.md +129 -0
- package/.agent/workflows/code-audit-remote.md +279 -0
- package/.agent/workflows/conversation-starter.md +69 -0
- package/.agent/workflows/error-feedback.md +578 -0
- package/.agent/workflows/feature-development.md +355 -0
- package/.agent/workflows/git-workflow.md +702 -0
- package/.agent/workflows/multi-repo-workspace.md +268 -0
- package/.agent/workflows/plans.md +709 -0
- package/.agent/workflows/postflight.md +604 -0
- package/.agent/workflows/pr.md +571 -0
- package/.agent/workflows/preflight.md +278 -0
- package/.agent/workflows/ralph-loop.md +773 -0
- package/.agent/workflows/release.md +498 -0
- package/.agent/workflows/session-manager.md +254 -0
- package/.agent/workflows/session-review.md +311 -0
- package/.agent/workflows/sql-migrations.md +631 -0
- package/.agent/workflows/version-bump.md +283 -0
- package/.agent/workflows/wiki-update.md +333 -0
- package/.agent/workflows/worktree.md +477 -0
- package/LICENSE +21 -0
- package/README.md +1446 -0
- package/VERSION +1 -0
- package/aidevops.sh +1746 -0
- package/bin/aidevops +21 -0
- package/package.json +75 -0
- package/scripts/npm-postinstall.js +60 -0
- package/setup.sh +2366 -0
|
@@ -0,0 +1,571 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Unified PR workflow - orchestrates linting, auditing, standards checks, and intent vs reality analysis
|
|
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: true
|
|
12
|
+
task: true
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# PR Workflow - Unified Review Orchestrator
|
|
16
|
+
|
|
17
|
+
<!-- AI-CONTEXT-START -->
|
|
18
|
+
|
|
19
|
+
## Quick Reference
|
|
20
|
+
|
|
21
|
+
- **Purpose**: Comprehensive PR review orchestrating all quality checks
|
|
22
|
+
- **Prerequisite**: Branch created per `workflows/branch.md`
|
|
23
|
+
- **Post-merge**: Tag releases per `workflows/release.md`
|
|
24
|
+
|
|
25
|
+
**Orchestration Flow**:
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
/pr [PR-URL or branch]
|
|
29
|
+
├── /linters-local → ShellCheck, secretlint, pattern checks
|
|
30
|
+
├── /code-audit-remote → CodeRabbit, Codacy, SonarCloud APIs
|
|
31
|
+
├── /code-standards → Check against documented standards
|
|
32
|
+
└── Summary: Intent vs Reality analysis
|
|
33
|
+
```text
|
|
34
|
+
|
|
35
|
+
**Quick Commands**:
|
|
36
|
+
|
|
37
|
+
| Platform | Create | Review | Merge |
|
|
38
|
+
|----------|--------|--------|-------|
|
|
39
|
+
| GitHub | `gh pr create --fill` | `/pr review` | `gh pr merge --squash` |
|
|
40
|
+
| GitLab | `glab mr create --fill` | `/pr review` | `glab mr merge --squash` |
|
|
41
|
+
| Gitea | `tea pulls create` | `/pr review` | `tea pulls merge` |
|
|
42
|
+
|
|
43
|
+
<!-- AI-CONTEXT-END -->
|
|
44
|
+
|
|
45
|
+
## Purpose
|
|
46
|
+
|
|
47
|
+
The `/pr` command is the unified entry point for PR review that:
|
|
48
|
+
|
|
49
|
+
1. **Orchestrates all quality checks** - Runs local linters, remote audits, and standards checks
|
|
50
|
+
2. **Analyzes intent vs reality** - Compares PR description to actual code changes
|
|
51
|
+
3. **Detects undocumented changes** - Flags modifications not mentioned in PR description
|
|
52
|
+
4. **Provides actionable summary** - Clear pass/fail with specific recommendations
|
|
53
|
+
|
|
54
|
+
## Workflow Position
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
┌─────────────┐ ┌──────────────────┐ ┌─────────────┐
|
|
58
|
+
│ branch.md │────►│ pr.md │────►│ release.md │
|
|
59
|
+
│ │ │ │ │ │
|
|
60
|
+
│ - Create │ │ - Orchestrate │ │ - Tag │
|
|
61
|
+
│ - Develop │ │ - Lint local │ │ - Changelog │
|
|
62
|
+
│ - Commit │ │ - Audit remote │ │ - Publish │
|
|
63
|
+
│ │ │ - Check standards│ │ │
|
|
64
|
+
│ │ │ - Intent vs Real │ │ │
|
|
65
|
+
│ │ │ - Merge │ │ │
|
|
66
|
+
└─────────────┘ └──────────────────┘ └─────────────┘
|
|
67
|
+
```text
|
|
68
|
+
|
|
69
|
+
## Orchestrated Checks
|
|
70
|
+
|
|
71
|
+
### 1. Local Linting (`/linters-local`)
|
|
72
|
+
|
|
73
|
+
Runs fast, offline checks using local tools:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
# Executed by /linters-local
|
|
77
|
+
~/.aidevops/agents/scripts/linters-local.sh
|
|
78
|
+
```text
|
|
79
|
+
|
|
80
|
+
**Checks**:
|
|
81
|
+
- ShellCheck for shell scripts
|
|
82
|
+
- Secretlint for exposed secrets
|
|
83
|
+
- Pattern validation (return statements, positional parameters)
|
|
84
|
+
- Markdown formatting
|
|
85
|
+
|
|
86
|
+
### 2. Remote Auditing (`/code-audit-remote`)
|
|
87
|
+
|
|
88
|
+
Calls remote quality services via APIs:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
# Executed by /code-audit-remote
|
|
92
|
+
~/.aidevops/agents/scripts/code-audit-helper.sh audit [repo]
|
|
93
|
+
```text
|
|
94
|
+
|
|
95
|
+
**Services**:
|
|
96
|
+
- CodeRabbit - AI-powered code review
|
|
97
|
+
- Codacy - Code quality analysis
|
|
98
|
+
- SonarCloud - Security and maintainability
|
|
99
|
+
|
|
100
|
+
### 3. Standards Compliance (`/code-standards`)
|
|
101
|
+
|
|
102
|
+
Checks against our documented quality standards:
|
|
103
|
+
|
|
104
|
+
**Reference**: `tools/code-review/code-standards.md`
|
|
105
|
+
|
|
106
|
+
**Standards**:
|
|
107
|
+
- S7679: Positional parameters assigned to local variables
|
|
108
|
+
- S7682: Explicit return statements in functions
|
|
109
|
+
- S1192: Constants for repeated strings
|
|
110
|
+
- S1481: No unused variables
|
|
111
|
+
|
|
112
|
+
## Usage
|
|
113
|
+
|
|
114
|
+
### Review a PR
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Review current branch's PR
|
|
118
|
+
/pr review
|
|
119
|
+
|
|
120
|
+
# Review specific PR by number
|
|
121
|
+
/pr review 123
|
|
122
|
+
|
|
123
|
+
# Review PR by URL
|
|
124
|
+
/pr review https://github.com/user/repo/pull/123
|
|
125
|
+
```text
|
|
126
|
+
|
|
127
|
+
### Create a PR with Pre-checks
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
# Create PR after running all checks
|
|
131
|
+
/pr create
|
|
132
|
+
|
|
133
|
+
# Create draft PR
|
|
134
|
+
/pr create --draft
|
|
135
|
+
```text
|
|
136
|
+
|
|
137
|
+
### Full Workflow
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
# 1. Push branch
|
|
141
|
+
git push -u origin HEAD
|
|
142
|
+
|
|
143
|
+
# 2. Run comprehensive review
|
|
144
|
+
/pr review
|
|
145
|
+
|
|
146
|
+
# 3. Create PR if checks pass
|
|
147
|
+
/pr create --fill
|
|
148
|
+
|
|
149
|
+
# 4. After approval, merge
|
|
150
|
+
gh pr merge --squash --delete-branch
|
|
151
|
+
```text
|
|
152
|
+
|
|
153
|
+
## Output Format
|
|
154
|
+
|
|
155
|
+
The `/pr` command produces a structured report:
|
|
156
|
+
|
|
157
|
+
```markdown
|
|
158
|
+
## PR Review: #123 - Add user authentication
|
|
159
|
+
|
|
160
|
+
### Quality Checks
|
|
161
|
+
|
|
162
|
+
**Local Linting** (`/linters-local`):
|
|
163
|
+
- ShellCheck: 0 violations
|
|
164
|
+
- Secretlint: 0 secrets detected
|
|
165
|
+
- Pattern checks: PASS
|
|
166
|
+
|
|
167
|
+
**Remote Audit** (`/code-audit-remote`):
|
|
168
|
+
- CodeRabbit: 2 suggestions (minor)
|
|
169
|
+
- SonarCloud: 1 code smell (S1192)
|
|
170
|
+
- Codacy: A-grade maintained
|
|
171
|
+
|
|
172
|
+
**Standards Compliance** (`/code-standards`):
|
|
173
|
+
- Return statements: PASS
|
|
174
|
+
- Positional parameters: PASS
|
|
175
|
+
- Error handling: PASS
|
|
176
|
+
|
|
177
|
+
### Intent vs Reality
|
|
178
|
+
|
|
179
|
+
**PR Description Claims**:
|
|
180
|
+
- Implements OAuth2 flow
|
|
181
|
+
- Adds session management
|
|
182
|
+
- Closes #123
|
|
183
|
+
|
|
184
|
+
**Code Analysis Confirms**:
|
|
185
|
+
| Claimed | Found In | Status |
|
|
186
|
+
|---------|----------|--------|
|
|
187
|
+
| OAuth2 flow | `auth/oauth.js` | Verified |
|
|
188
|
+
| Session management | `session/manager.js` | Verified |
|
|
189
|
+
| Closes #123 | Issue matches scope | Verified |
|
|
190
|
+
|
|
191
|
+
**Undocumented Changes Detected**:
|
|
192
|
+
- Modified `config/database.js` (not mentioned)
|
|
193
|
+
- Added dependency `lodash` (not documented)
|
|
194
|
+
|
|
195
|
+
### Recommendation
|
|
196
|
+
|
|
197
|
+
- [ ] Address 1 code smell before merge
|
|
198
|
+
- [ ] Document database config change in PR description
|
|
199
|
+
- [ ] Justify lodash dependency addition
|
|
200
|
+
|
|
201
|
+
**Overall**: CHANGES REQUESTED
|
|
202
|
+
```text
|
|
203
|
+
|
|
204
|
+
## Loop Commands
|
|
205
|
+
|
|
206
|
+
For iterative PR workflows that automatically retry until success:
|
|
207
|
+
|
|
208
|
+
| Command | Purpose | Default Limit |
|
|
209
|
+
|---------|---------|---------------|
|
|
210
|
+
| `/pr-loop` | Iterate until PR approved/merged | 10 iterations |
|
|
211
|
+
| `/preflight-loop` | Iterate until preflight passes | 5 iterations |
|
|
212
|
+
|
|
213
|
+
### Timeout Recovery
|
|
214
|
+
|
|
215
|
+
If a loop times out before completion:
|
|
216
|
+
|
|
217
|
+
1. **Check current status**:
|
|
218
|
+
```bash
|
|
219
|
+
gh pr view --json state,reviewDecision,statusCheckRollup
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
2. **Review what's pending** - usually one of:
|
|
223
|
+
- CI checks still running (wait and re-check)
|
|
224
|
+
- Review requested but not completed (ping reviewer)
|
|
225
|
+
- Failing checks that need manual intervention
|
|
226
|
+
|
|
227
|
+
3. **Fix and continue** - address issues, then:
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
# Re-run single review cycle
|
|
231
|
+
/pr review
|
|
232
|
+
|
|
233
|
+
# Or restart loop if multiple issues remain
|
|
234
|
+
/pr-loop
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Loops are convenience wrappers - the manual `/pr review` workflow always works.
|
|
238
|
+
|
|
239
|
+
## Fork Workflow (Non-Owner Repositories)
|
|
240
|
+
|
|
241
|
+
When working on a repository you don't own, use the fork workflow:
|
|
242
|
+
|
|
243
|
+
### Detect Non-Owner Status
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
# Get remote URL and extract owner
|
|
247
|
+
REMOTE_URL=$(git remote get-url origin)
|
|
248
|
+
REPO_OWNER=$(echo "$REMOTE_URL" | sed -E 's/.*[:/]([^/]+)\/[^/]+\.git$/\1/')
|
|
249
|
+
|
|
250
|
+
# Get current user (GitHub)
|
|
251
|
+
CURRENT_USER=$(gh api user --jq '.login')
|
|
252
|
+
|
|
253
|
+
# Check if owner
|
|
254
|
+
if [[ "$REPO_OWNER" != "$CURRENT_USER" ]]; then
|
|
255
|
+
echo "Fork workflow required"
|
|
256
|
+
fi
|
|
257
|
+
```text
|
|
258
|
+
|
|
259
|
+
### Fork and Setup
|
|
260
|
+
|
|
261
|
+
**GitHub:**
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
# 1. Fork the repository
|
|
265
|
+
gh repo fork {owner}/{repo} --clone=false
|
|
266
|
+
|
|
267
|
+
# 2. Add fork as remote
|
|
268
|
+
git remote add fork git@github.com:{your-username}/{repo}.git
|
|
269
|
+
|
|
270
|
+
# 3. Verify remotes
|
|
271
|
+
git remote -v
|
|
272
|
+
# origin git@github.com:{owner}/{repo}.git (fetch/push) - upstream
|
|
273
|
+
# fork git@github.com:{your-username}/{repo}.git (fetch/push) - your fork
|
|
274
|
+
```text
|
|
275
|
+
|
|
276
|
+
**GitLab:**
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
# 1. Fork via web UI or API
|
|
280
|
+
glab repo fork {owner}/{repo}
|
|
281
|
+
|
|
282
|
+
# 2. Add fork as remote
|
|
283
|
+
git remote add fork git@gitlab.com:{your-username}/{repo}.git
|
|
284
|
+
```text
|
|
285
|
+
|
|
286
|
+
**Gitea:**
|
|
287
|
+
|
|
288
|
+
```bash
|
|
289
|
+
# 1. Fork via web UI
|
|
290
|
+
# 2. Add fork as remote
|
|
291
|
+
git remote add fork git@{gitea-host}:{your-username}/{repo}.git
|
|
292
|
+
```text
|
|
293
|
+
|
|
294
|
+
### Push and Create PR to Upstream
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
# 1. Push to your fork
|
|
298
|
+
git push fork {branch-name}
|
|
299
|
+
|
|
300
|
+
# 2. Create PR to upstream (GitHub)
|
|
301
|
+
gh pr create --repo {owner}/{repo} --head {your-username}:{branch-name}
|
|
302
|
+
|
|
303
|
+
# GitLab equivalent
|
|
304
|
+
glab mr create --target-project {owner}/{repo} --source-branch {branch-name}
|
|
305
|
+
```text
|
|
306
|
+
|
|
307
|
+
### Keeping Fork Updated
|
|
308
|
+
|
|
309
|
+
```bash
|
|
310
|
+
# Fetch upstream changes
|
|
311
|
+
git fetch origin main
|
|
312
|
+
|
|
313
|
+
# Update your fork's main
|
|
314
|
+
git checkout main
|
|
315
|
+
git merge origin/main
|
|
316
|
+
git push fork main
|
|
317
|
+
|
|
318
|
+
# Rebase your feature branch
|
|
319
|
+
git checkout {branch-name}
|
|
320
|
+
git rebase main
|
|
321
|
+
git push fork {branch-name} --force-with-lease
|
|
322
|
+
```text
|
|
323
|
+
|
|
324
|
+
### Fork Workflow Diagram
|
|
325
|
+
|
|
326
|
+
```text
|
|
327
|
+
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
|
328
|
+
│ Upstream Repo │ │ Your Fork │ │ Local Clone │
|
|
329
|
+
│ (origin) │ │ (fork) │ │ │
|
|
330
|
+
├─────────────────┤ ├─────────────────┤ ├─────────────────┤
|
|
331
|
+
│ │ │ │ │ │
|
|
332
|
+
│ main ◄─────────┼─────┼─── PR ◄─────────┼─────┼─── push fork │
|
|
333
|
+
│ │ │ │ │ │
|
|
334
|
+
│ │ │ {branch} ◄─────┼─────┼─── your work │
|
|
335
|
+
│ │ │ │ │ │
|
|
336
|
+
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
|
337
|
+
```text
|
|
338
|
+
|
|
339
|
+
## Creating Pull Requests
|
|
340
|
+
|
|
341
|
+
### GitHub (`gh`)
|
|
342
|
+
|
|
343
|
+
```bash
|
|
344
|
+
# Push branch first
|
|
345
|
+
git push -u origin HEAD
|
|
346
|
+
|
|
347
|
+
# Create PR with auto-filled title/body from commits
|
|
348
|
+
gh pr create --fill
|
|
349
|
+
|
|
350
|
+
# Create PR with custom details
|
|
351
|
+
gh pr create \
|
|
352
|
+
--title "feat: Add user authentication" \
|
|
353
|
+
--body "## Summary
|
|
354
|
+
- Implements OAuth2 flow
|
|
355
|
+
- Adds session management
|
|
356
|
+
|
|
357
|
+
Closes #123"
|
|
358
|
+
|
|
359
|
+
# Create draft PR (not ready for review)
|
|
360
|
+
gh pr create --fill --draft
|
|
361
|
+
|
|
362
|
+
# Create PR and request reviewers
|
|
363
|
+
gh pr create --fill --reviewer @username,@team
|
|
364
|
+
```text
|
|
365
|
+
|
|
366
|
+
### GitLab (`glab`)
|
|
367
|
+
|
|
368
|
+
```bash
|
|
369
|
+
# Push branch first
|
|
370
|
+
git push -u origin HEAD
|
|
371
|
+
|
|
372
|
+
# Create MR with auto-filled details
|
|
373
|
+
glab mr create --fill
|
|
374
|
+
|
|
375
|
+
# Create draft MR
|
|
376
|
+
glab mr create --fill --draft
|
|
377
|
+
|
|
378
|
+
# Create MR and assign reviewers
|
|
379
|
+
glab mr create --fill --reviewer @username
|
|
380
|
+
```text
|
|
381
|
+
|
|
382
|
+
### Gitea (`tea`)
|
|
383
|
+
|
|
384
|
+
```bash
|
|
385
|
+
# Push branch first
|
|
386
|
+
git push -u origin HEAD
|
|
387
|
+
|
|
388
|
+
# Create PR
|
|
389
|
+
tea pulls create \
|
|
390
|
+
--title "feat: Add user authentication" \
|
|
391
|
+
--description "Summary of changes"
|
|
392
|
+
```text
|
|
393
|
+
|
|
394
|
+
## Merging Pull Requests
|
|
395
|
+
|
|
396
|
+
### Merge Strategies
|
|
397
|
+
|
|
398
|
+
| Strategy | Command | When to Use |
|
|
399
|
+
|----------|---------|-------------|
|
|
400
|
+
| **Squash** | `--squash` | Multiple commits -> single clean commit |
|
|
401
|
+
| **Merge** | `--merge` | Preserve full commit history |
|
|
402
|
+
| **Rebase** | `--rebase` | Linear history, no merge commits |
|
|
403
|
+
|
|
404
|
+
**Recommendation**: Use squash for feature branches to keep main history clean.
|
|
405
|
+
|
|
406
|
+
### GitHub
|
|
407
|
+
|
|
408
|
+
```bash
|
|
409
|
+
# Squash merge (recommended)
|
|
410
|
+
gh pr merge 123 --squash
|
|
411
|
+
|
|
412
|
+
# Auto-merge when checks pass
|
|
413
|
+
gh pr merge 123 --squash --auto
|
|
414
|
+
|
|
415
|
+
# Delete branch after merge
|
|
416
|
+
gh pr merge 123 --squash --delete-branch
|
|
417
|
+
```text
|
|
418
|
+
|
|
419
|
+
### GitLab
|
|
420
|
+
|
|
421
|
+
```bash
|
|
422
|
+
# Squash merge
|
|
423
|
+
glab mr merge 123 --squash
|
|
424
|
+
|
|
425
|
+
# Merge when pipeline succeeds
|
|
426
|
+
glab mr merge 123 --when-pipeline-succeeds
|
|
427
|
+
```text
|
|
428
|
+
|
|
429
|
+
## Task Status Updates
|
|
430
|
+
|
|
431
|
+
Workflow commands automatically update task status in TODO.md:
|
|
432
|
+
|
|
433
|
+
### Task Lifecycle
|
|
434
|
+
|
|
435
|
+
```text
|
|
436
|
+
Ready/Backlog → In Progress → In Review → Done
|
|
437
|
+
(branch) (develop) (PR) (merge/release)
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
### On PR Creation
|
|
441
|
+
|
|
442
|
+
Move task from `## In Progress` to `## In Review`:
|
|
443
|
+
|
|
444
|
+
```markdown
|
|
445
|
+
# Before (in ## In Progress)
|
|
446
|
+
- [ ] t001 Add user dashboard #feature ~4h started:2025-01-15T10:30Z
|
|
447
|
+
|
|
448
|
+
# After (move to ## In Review)
|
|
449
|
+
- [ ] t001 Add user dashboard #feature ~4h started:2025-01-15T10:30Z pr:123
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
```bash
|
|
453
|
+
# Sync with Beads after updating TODO.md
|
|
454
|
+
~/.aidevops/agents/scripts/beads-sync-helper.sh push
|
|
455
|
+
```
|
|
456
|
+
|
|
457
|
+
### On PR Merge
|
|
458
|
+
|
|
459
|
+
Move task from `## In Review` to `## Done`:
|
|
460
|
+
|
|
461
|
+
```markdown
|
|
462
|
+
# Before (in ## In Review)
|
|
463
|
+
- [ ] t001 Add user dashboard #feature ~4h started:2025-01-15T10:30Z pr:123
|
|
464
|
+
|
|
465
|
+
# After (move to ## Done)
|
|
466
|
+
- [x] t001 Add user dashboard #feature ~4h actual:5h started:2025-01-15T10:30Z completed:2025-01-16T14:00Z
|
|
467
|
+
```
|
|
468
|
+
|
|
469
|
+
```bash
|
|
470
|
+
# Sync with Beads after updating TODO.md
|
|
471
|
+
~/.aidevops/agents/scripts/beads-sync-helper.sh push
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
## Post-Merge Actions
|
|
475
|
+
|
|
476
|
+
After merging:
|
|
477
|
+
|
|
478
|
+
1. **Update task status** (see above):
|
|
479
|
+
- Move task to `## Done`
|
|
480
|
+
- Add `completed:` timestamp
|
|
481
|
+
- Add `actual:` time if known
|
|
482
|
+
- Sync with Beads
|
|
483
|
+
|
|
484
|
+
2. **Delete branch** (if not auto-deleted):
|
|
485
|
+
|
|
486
|
+
```bash
|
|
487
|
+
git branch -d feature/xyz # Local
|
|
488
|
+
git push origin --delete feature/xyz # Remote
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
3. **Update local main**:
|
|
492
|
+
|
|
493
|
+
```bash
|
|
494
|
+
git checkout main
|
|
495
|
+
git pull origin main
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
4. **Create release** (if applicable):
|
|
499
|
+
See `workflows/release.md`
|
|
500
|
+
|
|
501
|
+
## Troubleshooting
|
|
502
|
+
|
|
503
|
+
### PR Won't Merge
|
|
504
|
+
|
|
505
|
+
| Issue | Solution |
|
|
506
|
+
|-------|----------|
|
|
507
|
+
| Merge conflicts | `git merge main`, resolve conflicts, push |
|
|
508
|
+
| Checks failing | Fix issues, push new commits |
|
|
509
|
+
| Reviews pending | Request review or wait for approval |
|
|
510
|
+
| Branch protection | Ensure all requirements met |
|
|
511
|
+
|
|
512
|
+
### Resolving Merge Conflicts
|
|
513
|
+
|
|
514
|
+
```bash
|
|
515
|
+
git checkout main && git pull origin main
|
|
516
|
+
git checkout your-branch
|
|
517
|
+
git merge main
|
|
518
|
+
# Resolve conflicts in editor
|
|
519
|
+
git add . && git commit -m "fix: Resolve merge conflicts"
|
|
520
|
+
git push
|
|
521
|
+
```text
|
|
522
|
+
|
|
523
|
+
## Handling Contradictory AI Feedback
|
|
524
|
+
|
|
525
|
+
AI code reviewers (CodeRabbit, Codacy, etc.) may occasionally provide contradictory feedback. When this occurs:
|
|
526
|
+
|
|
527
|
+
### Detection
|
|
528
|
+
|
|
529
|
+
Contradictory feedback patterns:
|
|
530
|
+
- Reviewer suggests change A → B, then later suggests B → A
|
|
531
|
+
- Different reviewers suggest opposite changes
|
|
532
|
+
- Feedback contradicts documented standards or actual runtime behavior
|
|
533
|
+
|
|
534
|
+
### Resolution Process
|
|
535
|
+
|
|
536
|
+
1. **Verify actual behavior**: Test the code to confirm what works
|
|
537
|
+
```bash
|
|
538
|
+
# Example: Verify application name works in AppleScript
|
|
539
|
+
osascript -e 'tell application "iTerm" to get name'
|
|
540
|
+
osascript -e 'tell application "iTerm2" to get name'
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
2. **Check authoritative sources**: Documentation, official APIs, standards
|
|
544
|
+
|
|
545
|
+
3. **Document your decision**: In PR comments, explain:
|
|
546
|
+
- What the contradictory feedback was
|
|
547
|
+
- How you verified the correct behavior
|
|
548
|
+
- Why you're dismissing the feedback
|
|
549
|
+
|
|
550
|
+
4. **Proceed with merge**: If feedback is demonstrably incorrect, merge despite CHANGES_REQUESTED
|
|
551
|
+
|
|
552
|
+
```bash
|
|
553
|
+
gh pr merge 123 --squash --delete-branch
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
### Example Comment
|
|
557
|
+
|
|
558
|
+
```markdown
|
|
559
|
+
Regarding the iTerm/iTerm2 naming: Both work in AppleScript.
|
|
560
|
+
The app bundle is `/Applications/iTerm.app` but responds to both
|
|
561
|
+
`tell application "iTerm"` and `tell application "iTerm2"`.
|
|
562
|
+
Keeping current code - no change needed.
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
## Related Workflows
|
|
566
|
+
|
|
567
|
+
- **Branch creation**: `workflows/branch.md`
|
|
568
|
+
- **Local linting**: `scripts/linters-local.sh`
|
|
569
|
+
- **Remote auditing**: `workflows/code-audit-remote.md`
|
|
570
|
+
- **Standards reference**: `tools/code-review/code-standards.md`
|
|
571
|
+
- **Releases**: `workflows/release.md`
|