aiwg
Version:
Cognitive architecture for AI-augmented software development with structured memory, ensemble validation, and closed-loop correction. FAIR-aligned artifacts, 84% cost reduction via human-in-the-loop, standards adopted by 100+ organizations.
1,828 lines (1,386 loc) • 49.7 kB
Markdown
# AIWG Maintainer Review Guide
**Version:** 1.0 (Publication Ready)
**Created:** 2025-10-17
**Status:** Baseline
**Audience:** AIWG Repository Maintainers
## Table of Contents
1. [Prerequisites](#prerequisites)
2. [Review Workflow Overview](#review-workflow-overview)
3. [Automated Quality Validation](#automated-quality-validation)
4. [Command Reference](#command-reference)
5. [Review Decision Framework](#review-decision-framework)
6. [Requesting Changes](#requesting-changes)
7. [Approving and Merging](#approving-and-merging)
8. [Special Cases](#special-cases)
9. [Example Reviews](#example-reviews)
10. [Contribution Metrics](#contribution-metrics)
11. [Best Practices](#best-practices)
## Prerequisites
### Required Tools
**GitHub CLI (gh):**
```bash
# Verify installation
gh --version # Should be >= 2.0
# Authenticate if needed
gh auth login
gh auth status
```
**AIWG Installation:**
```bash
# Verify AIWG is installed
aiwg -version
# Ensure maintainer commands are available
aiwg -help | grep review
# Should show: -review-pr, -review-request-changes, -review-approve, -review-stats
```
### Using Review Commands in Other Repositories
These maintainer commands work with any GitHub repository using similar quality standards:
**Adaptations:**
- quality gates are AIWG-specific (markdown lint, manifests)
- For other repos, configure quality gates in `.aiwg/config.json`
- Core workflow (review → request changes → approve) is universal
**Example:**
```bash
# Review PR in different repo
cd /path/to/other-repo
aiwg -review-pr 42 # Works with any GitHub repo
```
### Required Access
**Repository Permissions:**
- Write access to `jmagly/ai-writing-guide`
- Ability to approve PRs
- Ability to merge PRs
**Maintainer Role:**
- Listed in `.github/CODEOWNERS` (if configured)
- Member of maintainer team in GitHub organization
### Understanding AIWG Architecture
**Key Knowledge Areas:**
1. **Directory Structure:** Know where agents, commands, templates, flows reside
2. **CLI Architecture:** Understand `install.sh` routing and command dispatch
3. **Quality Standards:** Markdown linting rules, manifest system, documentation requirements
4. **SDLC Framework:** Intake forms, phase workflows, artifact structure
**Recommended Reading:**
- `README.md`
- `CLAUDE.md`
- `agentic/code/frameworks/sdlc-complete/README.md`
- `docs/contributing/pr-guidelines.md`
## Review Workflow Overview
### Standard Review Flow
```mermaid
graph TD
A[PR Created] --> B[aiwg -review-pr NUM]
B --> C{Quality Gates}
C -->|All Pass| D[Review Content]
C -->|Some Fail| E[aiwg -review-request-changes NUM]
D --> F{Approval Decision}
F -->|Approve| G[aiwg -review-approve NUM]
F -->|Changes Needed| E
F -->|Reject| H[Close with Explanation]
E --> I[Contributor Updates]
I --> B
G --> J{CI Passing?}
J -->|Yes| K[Auto-Merge]
J -->|No| L[Wait for CI]
L -->|Fixed| K
L -->|Fails| E
```
### Time Expectations
**Initial Review:** Within 24-48 hours of PR creation (business days)
**Change Response:** Within 24 hours of contributor update (business days)
**Final Approval:** Within 24 hours of all criteria met
### Communication Standards
**Tone:** Professional, constructive, encouraging
**Specificity:** Always provide file/line references
**Actionability:** Every request includes example or guidance
**Positivity:** Acknowledge good work, not just issues
## Automated Quality Validation
The `aiwg -review-pr` command runs these validation checks:
### 1. Markdown Lint (Required)
**Validation:** All markdown files pass markdownlint-cli2 rules
**Common Issues:**
- MD012: Multiple blank lines
- MD022/MD032: Heading/list spacing
- MD031/MD040: Code fence issues
- MD041: First line should be H1
- MD047: Files end with newline
**Fix Commands (for contributors):**
```bash
# Run all fixers
node tools/lint/fix-md12.mjs --target . --write
node tools/lint/fix-md-heading-lists.mjs --target . --write
node tools/lint/fix-md-codefences.mjs --target . --write
node tools/lint/fix-md41-firsth1.mjs --target . --write
node tools/lint/fix-md47-finalnewline.mjs --target . --write
```
**Score Impact:** -5 points per unfixed error
### 2. Manifest Sync (Required)
**Validation:** All directory manifests are up-to-date
**Common Issues:**
- New files added without manifest update
- File descriptions missing or generic
- Metadata incomplete
**Fix Commands:**
```bash
# Regenerate manifests
node tools/manifest/generate-manifest.mjs <dir> --write-md
node tools/manifest/enrich-manifests.mjs --target . --write
node tools/manifest/sync-manifests.mjs --target . --fix --write-md
```
**Score Impact:** -10 points if out of sync
### 3. Documentation Completeness (Required)
**Validation:** All required documentation is present and complete
**Required Documentation:**
- [ ] **README.md updated** - Feature mentioned in relevant section
- [ ] **Quick-start guide exists** - `docs/<category>/<feature>-quickstart.md`
- [ ] **Integration doc complete** - Detailed usage, examples, troubleshooting
**Optional Documentation (adds points):**
- [ ] **Video tutorial** or animated GIF
- [ ] **Migration guide** (for breaking changes)
- [ ] **API reference** (if adding programmatic interface)
**Score Impact:** -20 points per missing required doc, +5 points per optional doc
### 4. Breaking Change Analysis (Required)
**Validation:** Breaking changes are identified and documented
**What Constitutes Breaking Change:**
- CLI command signature changes (flags, arguments)
- File path changes (templates, agents, commands)
- Configuration schema changes
- Removal of features or commands
- Behavior changes to existing features
**Required for Breaking Changes:**
- [ ] **BREAKING CHANGE** noted in commit message
- [ ] **Migration guide** provided in docs
- [ ] **Deprecation notices** added (if applicable)
- [ ] **Version bump** planned (major version)
**Score Impact:** -30 points if breaking change not documented
### 5. Security Scan (Basic)
**Validation:** No obvious security issues
**Checks:**
- No hardcoded credentials or tokens
- No obvious command injection vulnerabilities
- No path traversal issues
- No eval() or dangerous code execution
**Score Impact:** -50 points if security issue found (likely reject)
### Quality Score Calculation
**Base Score:** 100 points
**Deductions:**
- Markdown lint errors: -5 per error
- Manifest out of sync: -10
- Missing required doc: -20 per doc
- Breaking change undocumented: -30
- Security issue: -50
**Bonuses:**
- Optional docs: +5 per doc
- Comprehensive tests: +10
- Video tutorial: +10
**Thresholds:**
- **90-100:** Excellent - Immediate approval candidate
- **80-89:** Good - Minor improvements needed
- **70-79:** Acceptable - Changes requested
- **Below 70:** Needs significant work - Reject or major rework
### Manual Review Criteria
**Code Quality:**
- [ ] Follows existing code style and patterns
- [ ] No unnecessary dependencies added
- [ ] Error handling is robust
- [ ] Code is maintainable and readable
**Architecture Alignment:**
- [ ] Fits into existing AIWG structure
- [ ] Doesn't duplicate functionality
- [ ] Integrates cleanly with other components
- [ ] Follows AIWG conventions (naming, directory structure)
**User Experience:**
- [ ] Command interface is intuitive
- [ ] Error messages are clear and actionable
- [ ] Output is well-formatted and helpful
- [ ] Documentation matches actual behavior
**Testing:**
- [ ] Changes are testable
- [ ] Test strategy documented (if applicable)
- [ ] Manual testing steps provided
- [ ] Edge cases considered
## Command Reference
### `aiwg -review-pr <pr-number>`
**Purpose:** Comprehensive PR quality validation and review report generation
**Usage:**
```bash
# Review PR #123
aiwg -review-pr 123
# Output shows:
# - quality gate results
# - Files changed summary
# - Recommendation (approve/request changes/reject)
# - Next action options
```
**What It Does:**
1. Fetches PR metadata via `gh pr view`
2. Checks out PR branch locally (temporary)
3. Runs all quality gates
4. Analyzes files changed
5. Generates review report
6. Provides recommendation and action menu
**Typical Output:**
```
Reviewing PR #123: Add Cursor Editor platform integration
Author: @contributor
Branch: contrib/contributor/cursor-integration
Quality Gates:
✓ Markdown lint: PASSED
✓ Manifest sync: PASSED
⚠ Documentation: INCOMPLETE (missing --mode in quickstart)
✓ Breaking changes: NONE
✓ Security scan: PASSED
Files changed: 6
- tools/cursor/setup-cursor.mjs (new, 350 lines)
- tools/install/install.sh (+15 lines)
- README.md (+25 lines)
- docs/integrations/cursor-quickstart.md (new, 200 lines)
- docs/integrations/cursor-integration.md (new, 450 lines)
- tools/manifest/integrations-manifest.json (+12 lines)
Manual Review Checklist:
- Code style: Consistent with existing patterns
- Architecture: Follows platform integration structure
- UX: Clear error messages, helpful output
- Testing: Manual test steps provided
quality score: 85/100
Recommendation: REQUEST CHANGES
Issues:
1. Missing --mode flag documentation in quickstart
2. install.sh needs --platform cursor routing
Actions:
[1] Request changes with guidance
[2] Approve despite issues
[3] Comment only (no review)
[4] Generate detailed review report
[5] Exit
```
**When to Use:**
- Every PR, as first step
- After contributor updates (re-review)
- Before final approval
### `aiwg -review-request-changes <pr-number> [--guidance "text"]`
**Purpose:** Request changes with specific, actionable feedback
**Usage:**
```bash
# Request changes with inline guidance
aiwg -review-request-changes 123 --guidance "Add --mode flag to cursor quickstart"
# Interactive mode (asks for guidance)
aiwg -review-request-changes 123
```
**What It Does:**
1. Reads quality gate results from previous review
2. Generates structured change request
3. Provides file/line references
4. Includes example fixes or guidance
5. Posts review via `gh pr review --request-changes`
**Example Output:**
```
Generating change request for PR #123...
Changes requested on PR #123:
1. Documentation: Add --mode flag support
File: docs/integrations/cursor-quickstart.md
Location: Lines 25-30
Issue: Quick-start doesn't show --mode flag usage
Suggestion:
```bash
# Deploy agents with mode selection
aiwg -deploy-agents --platform cursor --mode sdlc
# Or deploy both general and SDLC agents
aiwg -deploy-agents --platform cursor --mode both
```
Why: Users need to know they can choose agent sets
2. CLI Routing: Add platform cursor detection
File: tools/install/install.sh
Location: Line 245
Issue: Missing --platform cursor routing
Suggestion: Follow pattern from --platform warp (lines 234-242)
```bash
--platform)
shift
case "$1" in
cursor)
node "$INSTALL_DIR/tools/cursor/setup-cursor.mjs" "${@:2}"
exit 0
;;
```
Why: Ensures `aiwg -deploy-agents --platform cursor` works
Post review? [y/n]: y
✓ Review posted: https://github.com/jmagly/aiwg/pull/123
Notification sent to @contributor
Expected response time: 24-48 hours
```
**When to Use:**
- quality score 70-89 with fixable issues
- Documentation incomplete
- Minor code issues
- Missing examples or tests
### `aiwg -review-approve <pr-number> [--auto-merge]`
**Purpose:** Approve PR and optionally enable auto-merge
**Usage:**
```bash
# Approve only (wait for manual merge)
aiwg -review-approve 123
# Approve and enable auto-merge
aiwg -review-approve 123 --auto-merge
# Approve with comment
aiwg -review-approve 123 --comment "Great work on the cursor integration!"
```
**What It Does:**
1. Runs final quality validation
2. Checks all gates pass
3. Approves PR via `gh pr review --approve`
4. Optionally enables auto-merge
5. Posts approval comment
6. Updates project status
**Example Output:**
```
Running final validation for PR #123...
✓ All quality gates passed
✓ quality score: 92/100
Approving PR #123: Add Cursor Editor platform integration
Review Comment:
--------------------------------------------------
Excellent work! The cursor integration follows our platform
patterns perfectly and the documentation is thorough.
quality score: 92/100
✓ All gates passed
✓ Code quality: High
✓ Documentation: Complete
✓ Testing: Manual steps provided
Approved with auto-merge enabled.
--------------------------------------------------
✓ Approved
✓ Auto-merge enabled (will merge when CI passes)
PR will merge automatically when:
- All CI checks pass
- No new change requests posted
- No merge conflicts
Estimated merge time: 5-10 minutes (CI duration)
```
**When to Use:**
- quality score >= 90
- All gates passed
- Code review complete and acceptable
- Documentation complete
- No security concerns
### `aiwg -review-stats [--since "YYYY-MM-DD"]`
**Purpose:** Track contribution metrics and community health
**Usage:**
```bash
# Stats since beginning of year
aiwg -review-stats --since "2025-01-01"
# Stats for last 30 days
aiwg -review-stats --since "30 days ago"
# All-time stats
aiwg -review-stats
```
**What It Does:**
1. Fetches all PRs with `contribution` label
2. Calculates metrics (merge rate, quality scores, response times)
3. Identifies top contributors
4. Analyzes contribution categories
5. Generates health report
**Example Output:**
```
Contribution Metrics (2025-01-01 to 2025-10-17)
PRs: 15 total
- Merged: 12 (80%)
- Open: 2 (13%)
- Closed without merge: 1 (7%)
Contribution Categories:
- Platform Integrations: 8 (53%)
- Cursor: 1 (merged)
- Windsurf: 1 (open)
- Zed: 1 (open)
- Warp: 2 (merged)
- VS Code: 3 (merged)
- Documentation: 4 (27%)
- Bug Fixes: 2 (13%)
- Tooling: 1 (7%)
Quality Metrics:
- Average quality score: 87/100
- Score Distribution:
- 90-100: 6 PRs (40%)
- 80-89: 7 PRs (47%)
- 70-79: 2 PRs (13%)
- Below 70: 0 PRs (0%)
Time Metrics:
- Median time to first review: 18 hours
- Median time to merge: 3.5 days
- Median contributor response time: 6 hours
Top Contributors:
1. @contributor1 (4 PRs, avg score: 91)
2. @contributor2 (3 PRs, avg score: 85)
3. @contributor3 (2 PRs, avg score: 88)
Community Health:
✓ Response time under target (24h)
✓ Merge rate healthy (>80%)
⚠ Open PR age: 2 PRs >7 days (review needed)
Recommendations:
- Review PR #125 (open 9 days)
- Review PR #127 (open 8 days)
```
**When to Use:**
- Monthly community health check
- Before planning meetings
- To identify top contributors for recognition
- To track maintainer responsiveness
### Integration with Contributor Workflow
When you request changes via `aiwg -review-request-changes`, contributors can respond using:
```bash
# Contributor side
aiwg -contribute-monitor {feature} # See your feedback
aiwg -contribute-respond {feature} # Address changes
```
**Communication Tips:**
- Mention these commands in change requests for first-time contributors
- Link to contributor documentation in PR comments
- Encourage use of AIWG toolset for faster iteration
**Example:**
"Thanks for this contribution! I've requested some changes. You can use
`aiwg -contribute-respond cursor-integration` to address the feedback
using AIWG's assisted workflow."
## Review Decision Framework
### Simplified Decision Process
```text
quality score → Action
90-100 → Approve (auto-merge)
80-89 → Approve or request minor changes
70-79 → Request changes
<70 → Reject or major rework
```
### Decision Criteria
#### Immediate Approval (quality score >= 90)
**Criteria:**
- ✓ All quality gates passed
- ✓ Code follows AIWG patterns
- ✓ Documentation complete and accurate
- ✓ No security concerns
- ✓ Changes are focused and cohesive
**Action:**
```bash
aiwg -review-approve <PR> --auto-merge
```
**Comment Template:**
```markdown
Excellent contribution! All quality gates passed and code review looks great.
quality score: {score}/100
✓ Documentation complete
✓ Code quality high
✓ Testing strategy clear
Approved with auto-merge enabled. Thank you for your contribution!
```
#### Request Minor Changes (quality score 80-89)
**Criteria:**
- ✓ Most gates passed
- ⚠ 1-3 fixable issues
- ✓ Core contribution is solid
- ⚠ Documentation needs small additions
**Action:**
```bash
aiwg -review-request-changes <PR> --guidance "Specific actionable feedback"
```
**Comment Template:**
```markdown
Great work on this contribution! The core implementation is solid, but needs a few small improvements:
quality score: {score}/100
Issues to address:
1. {Specific issue with file/line reference}
2. {Specific issue with example fix}
Once these are addressed, this will be ready to merge. Thanks!
```
#### Request Significant Changes (quality score 70-79)
**Criteria:**
- ⚠ Multiple issues across different areas
- ⚠ Documentation incomplete or inaccurate
- ⚠ Code quality concerns
- ✓ But core idea is valuable
**Action:**
```bash
aiwg -review-request-changes <PR> --guidance "Comprehensive rework needed"
```
**Comment Template:**
```markdown
Thank you for this contribution. The core idea is valuable, but several areas need improvement before we can merge:
quality score: {score}/100
Major Issues:
1. **Documentation:** {What's missing or incorrect}
2. **Code Quality:** {Specific patterns to follow}
3. **Testing:** {What needs verification}
I've provided specific guidance for each issue. Please don't hesitate to ask questions if anything is unclear. We're here to help!
```
#### Reject or Request Major Rework (quality score < 70)
**Criteria:**
- ❌ Multiple quality gates failed
- ❌ Fundamental architecture misalignment
- ❌ Security concerns
- ❌ Incomplete or misunderstood requirements
**Action:**
```bash
# Close PR with detailed explanation (manual via gh pr close)
gh pr close <PR> --comment "Detailed explanation and guidance"
```
**Comment Template:**
```markdown
Thank you for taking the time to contribute. Unfortunately, this PR cannot be merged in its current state due to significant issues:
quality score: {score}/100
Critical Issues:
1. **{Issue category}:** {Detailed explanation}
2. **{Issue category}:** {Detailed explanation}
Options:
1. **Major Rework:** If you'd like to continue, please address these fundamental issues. We can help guide you through a fresh approach.
2. **Fresh Start:** Consider starting a new contribution with `aiwg -contribute-start` to leverage AIWG's SDLC framework for better quality.
3. **Discussion:** Let's discuss the approach before more implementation work.
We appreciate your interest in contributing and are happy to help you succeed on a future contribution!
```
### Borderline Scores (75-80)
For scores on the edge between "Acceptable" and "Needs work":
**Tiebreaker Criteria:**
- First-time contributor? → Extra patience, request changes with detailed guidance
- Repeat contributor? → Higher standards, may approve with conditions
- Security implications? → Higher bar, request changes
- Documentation only? → Lower bar, may approve
## Special Cases
### Breaking Changes
**Detection:**
- CLI command signature changes
- File path relocations
- Configuration schema changes
- Removed features or commands
- Behavior changes to existing functionality
**Review Process:**
1. **Identify Impact:**
```bash
# Check which files are affected
gh pr files 123 | grep -E "install.sh|commands/|agents/"
# Review changes carefully
gh pr diff 123
```
2. **Require Documentation:**
- [ ] Migration guide in `docs/migrations/v{X}-to-v{Y}.md`
- [ ] Deprecation notices in affected commands (if graceful deprecation)
- [ ] BREAKING CHANGE in commit message
- [ ] Updated version number (major bump)
3. **Request Team Review:**
```bash
# Tag other maintainers
gh pr comment 123 --body "@maintainer1 @maintainer2 Breaking change - please review"
```
4. **Approval Criteria:**
- [ ] All maintainers reviewed and approved
- [ ] Migration guide tested
- [ ] Version bump planned
- [ ] Release timeline agreed
**Example Comment:**
```markdown
## Breaking Change Review
This PR introduces breaking changes:
**Changes:**
1. `--deploy-agents` now requires `--platform` flag (previously optional)
2. Default behavior changed from "all platforms" to "current platform only"
**Impact:**
- Existing scripts using `aiwg --deploy-agents` will fail
- Users must specify `--platform all` for old behavior
**Migration:**
✓ Migration guide provided: docs/migrations/v1-to-v2.md
✓ Error message guides users to fix
✓ Documentation updated
**Approval Status:**
- @maintainer1: Approved
- @maintainer2: Awaiting review
**Release Plan:**
- Version: 2.0.0 (major bump)
- Timeline: Merge after all approvals, release in 2 weeks
- Announcement: Blog post + GitHub release notes
Tagging team for review: @maintainer1 @maintainer2
```
### Security Concerns
**Red Flags:**
- Hardcoded credentials, tokens, or secrets
- Command injection vulnerabilities (e.g., unsanitized `exec()`)
- Path traversal risks (e.g., `../../../etc/passwd`)
- Arbitrary code execution (e.g., `eval()`, `Function()`)
- Unsafe file operations (e.g., no validation before write)
**Review Process:**
1. **Immediate Action:**
```bash
# Do NOT approve
# Request immediate changes or close PR
gh pr comment 123 --body "SECURITY ISSUE: {description} - Please fix immediately"
```
2. **Private Discussion:**
- For sensitive vulnerabilities, discuss privately (not in PR comments)
- Use GitHub Security Advisory if needed
3. **Example Comment (for minor issues):**
```markdown
## Security Issue
**File:** tools/contrib/create-pr.mjs
**Line:** 45
**Issue:** User input directly interpolated into shell command
**Current:**
```javascript
exec(`gh pr create --title "${title}"`)
```
**Risk:** Title with special characters could execute arbitrary commands
**Fix:**
```javascript
const { execFile } = require('child_process');
execFile('gh', ['pr', 'create', '--title', title])
```
**Why:** `execFile` doesn't spawn shell, preventing injection attacks.
Please fix before approval. Security is our top priority!
```
4. **Approval Only After:**
- [ ] Security issue fixed
- [ ] Fix verified by maintainer
- [ ] No other security concerns found
### Large Refactors
**Definition:**
- Changes >500 lines across multiple files
- Architectural changes affecting multiple components
- Significant behavior changes to core features
**Review Process:**
1. **Early Discussion:**
- Ideally, large refactors should be discussed BEFORE PR submission
- Use GitHub Discussions or Issues to align on approach
2. **Phased Review:**
```bash
# Review in chunks
gh pr files 123 | head -10 # Review first 10 files
# Request contributor to explain changes
gh pr comment 123 --body "Can you provide a high-level overview of the refactor strategy?"
```
3. **Test Thoroughly:**
- Require comprehensive testing strategy
- Manual testing by multiple maintainers
- Check all integration points
4. **Example Comment:**
```markdown
## Large Refactor Review
This is a significant change. Let's ensure quality:
**Scope:**
- 847 lines changed across 23 files
- Refactors CLI routing architecture
- Affects all platform integrations
**Review Strategy:**
1. High-level architecture review (me)
2. Platform integration testing (@maintainer1)
3. Backward compatibility testing (@maintainer2)
**Questions:**
1. Can you provide a migration guide for this refactor?
2. Have you tested all existing platform integrations?
3. Are there any breaking changes we should be aware of?
Timeline: This will take 3-5 days to review thoroughly. Thanks for your patience!
```
### Multi-Platform Impacts
**Scenario:** PR affects multiple platforms (Claude, Warp, Cursor, etc.)
**Review Process:**
1. **Test on All Platforms:**
```bash
# Deploy to each platform and test
aiwg -deploy-agents --platform claude --mode both
aiwg -deploy-agents --platform warp --mode both
aiwg -deploy-agents --platform cursor --mode both
# Verify functionality on each
```
2. **Check Platform-Specific Files:**
- `.claude/agents/`
- `.warp/workflows/`
- `.cursor/rules`
3. **Example Comment:**
```markdown
## Multi-Platform Impact Check
This PR affects all platform integrations. Testing:
**Platforms Tested:**
- ✓ Claude: Agents deployed and functional
- ✓ Warp: Workflows generated correctly
- ⏳ Cursor: Testing in progress
- ❌ Windsurf: Error in rule generation (details below)
**Issue Found (Windsurf):**
File: tools/windsurf/setup-windsurf.mjs:67
Error: `undefined is not a function` when generating rules
Please fix Windsurf compatibility before merge.
```
### First-Time Contributors
**Recognition:**
- Check contributor's GitHub profile and PR history
- First PR to AIWG deserves extra encouragement
**Review Process:**
1. **Extra Patience:**
- Provide more detailed feedback
- Explain "why" behind conventions
- Offer to pair program or help directly
2. **Example Comment:**
```markdown
## Welcome to AIWG! 🎉
Thank you for your first contribution! We appreciate you taking the time to improve AIWG.
I've reviewed your PR and have some feedback. Don't worry - this is normal! Every contribution goes through a review process to ensure quality.
**What You Did Well:**
- ✓ Clear documentation
- ✓ Good code structure
- ✓ Followed our commit conventions
**Areas to Improve:**
1. {Feedback with extra explanation}
2. {Feedback with examples}
**Need Help?**
- Ask questions anytime! We're here to help.
- Check out docs/contributing/ for more guidance
- Try `aiwg -contribute-respond {feature}` to address feedback
Looking forward to merging your contribution!
```
3. **Post-Merge Recognition:**
- Thank them publicly in PR comment
- Consider adding to CONTRIBUTORS.md
- Invite to join community discussions
### Abandoned or Corrupted Contributions
**Detection:**
- PR inactive >30 days
- Contributor unresponsive to feedback
- Contribution workspace corrupted
**Maintainer Actions:**
1. Comment on PR offering help
2. Suggest `aiwg -contribute-abort {feature}` if unrecoverable
3. Close PR after 60 days of inactivity with clear explanation
**Example Comment:**
```markdown
It looks like this contribution may have stalled. If you'd like to continue,
use `aiwg -contribute-abort cursor-integration` to clean up and start fresh.
If we don't hear back in 30 days, we'll close this PR. Thanks for your interest!
```
## Requesting Changes
### Best Practices for Feedback
#### Be Specific and Actionable
**Bad Example:**
```markdown
The documentation needs improvement.
```
**Good Example:**
```markdown
Documentation: Add --mode flag usage to quickstart
File: docs/integrations/cursor-quickstart.md
Location: Lines 25-30
Current: Only shows basic deployment
```bash
aiwg -deploy-agents --platform cursor
```
Add: Show mode selection
```bash
# Deploy SDLC agents only
aiwg -deploy-agents --platform cursor --mode sdlc
# Deploy general-purpose agents only
aiwg -deploy-agents --platform cursor --mode general
# Deploy both (default)
aiwg -deploy-agents --platform cursor --mode both
```
Why: Users need to understand mode selection to choose the right agent set.
```
#### Provide Context and Examples
**Bad Example:**
```markdown
Follow existing patterns.
```
**Good Example:**
```markdown
CLI Routing: Follow existing platform pattern
File: tools/install/install.sh
Location: After line 245
Reference: See --platform warp implementation (lines 234-242)
Add this case to the --platform switch:
```bash
cursor)
node "$INSTALL_DIR/tools/cursor/setup-cursor.mjs" "${@:2}"
exit 0
;;
```
Why: Ensures consistent CLI behavior across all platform integrations.
```
#### Balance Criticism with Encouragement
**Bad Example:**
```markdown
This code is poorly structured and doesn't follow our conventions.
```
**Good Example:**
```markdown
Code Structure: Great start! Let's align with AIWG conventions
File: tools/cursor/setup-cursor.mjs
Location: Lines 45-60
Current approach works, but let's use our existing error handling pattern:
Current:
```javascript
if (!fs.existsSync(cursorDir)) {
console.error("Cursor directory not found");
process.exit(1);
}
```
Suggested:
```javascript
const { validateDirectory } = require('../lib/validation.mjs');
try {
validateDirectory(cursorDir, 'Cursor configuration');
} catch (error) {
console.error(`Error: ${error.message}`);
process.exit(1);
}
```
Why: Reuses existing validation logic and provides consistent error messages.
The core logic is solid - this is just about consistency with the rest of the codebase!
```
### Feedback Structure Template
Use this structure for all change requests:
```markdown
## Summary
{1-2 sentences summarizing overall feedback}
quality score: {score}/100
## Required Changes
### 1. {Category}: {Short description}
**File:** {path/to/file.ext}
**Location:** {Lines X-Y or "Throughout"}
**Issue:** {What's wrong or missing}
**Current:**
```{language}
{Current code or content}
```
**Suggested:**
```{language}
{Suggested improvement}
```
**Why:** {Rationale - user benefit, consistency, etc.}
### 2. {Next issue...}
## Optional Improvements
{Nice-to-have changes that would make this even better}
## What You Got Right
{Positive feedback - acknowledge good work}
## Questions?
Feel free to ask questions about any of this feedback. We're here to help!
```
### Response Time Expectations
**Set Clear Expectations:**
```markdown
Expected contributor response time: 24-48 hours
If you need more time or have questions, just let us know!
We'll re-review within 24 hours of your updates.
```
### Offer Help
**Always Include:**
```markdown
## Need Help?
- Questions about this feedback? Comment here or tag @maintainer
- Want to discuss approach? We can hop on a quick call
- Stuck on implementation? We can pair program or provide code examples
- Using AIWG commands? Try `aiwg -contribute-respond cursor-integration`
```
## Approving and Merging
### Pre-Approval Checklist
Before approving any PR, verify:
- [ ] **All quality gates passed** (run `aiwg -review-pr` final time)
- [ ] **Code review complete** (all files reviewed manually)
- [ ] **Documentation accurate** (quick-start tested, examples work)
- [ ] **No security concerns** (no hardcoded secrets, safe code execution)
- [ ] **Breaking changes handled** (documented, migration guide present)
- [ ] **CI passing** (all GitHub Actions green)
### Approval Process
#### Step 1: Final Validation
```bash
# Run final review
aiwg -review-pr 123
# Verify quality score >= 90 (or 80 with good justification)
# Verify all gates passed
# Verify CI is passing
```
#### Step 2: Approve with Comment
```bash
# Approve with auto-merge
aiwg -review-approve 123 --auto-merge --comment "Great contribution! {specific praise}"
# Or approve without auto-merge (if you want manual control)
aiwg -review-approve 123 --comment "Approved! Will merge after {condition}"
```
**Approval Comment Template:**
```markdown
Excellent work on this contribution!
quality score: {score}/100
✓ All quality gates passed
✓ Code quality: {High/Excellent}
✓ Documentation: {Complete/Thorough}
✓ Testing: {Strategy provided/Manual testing complete}
{Specific thing you appreciated about this PR}
Approved with auto-merge enabled. Thank you for improving AIWG!
```
#### Step 3: Merge Strategy
**Auto-Merge (Default):**
- Enable with `--auto-merge` flag
- Merges automatically when CI passes
- Best for straightforward contributions
- Reduces maintainer overhead
**Manual Merge:**
- Use when coordination needed (with other PRs, release timing, etc.)
- Use when final validation needed before merge
- Use for breaking changes (coordinate version bump)
**Merge Method:**
- **Squash and merge** (default): For most contributions - clean history
- **Rebase and merge**: For well-structured commit history
- **Merge commit**: For large multi-feature contributions (rare)
#### Step 4: Post-Merge Actions
**Immediately After Merge:**
```bash
# Thank contributor (if not auto-generated)
gh pr comment 123 --body "Merged! Thanks for your contribution to AIWG!"
# Check if release needed
# - Platform integration: Increment minor version
# - Bug fix: Increment patch version
# - Breaking change: Increment major version
```
**Update Documentation:**
- Add to CHANGELOG.md (if applicable)
- Update version in package.json (if applicable)
- Add contributor to CONTRIBUTORS.md (if exists)
**Milestone and Project Management:**
- Close related issues (if any)
- Update project board (if using GitHub Projects)
- Assign milestone (if applicable)
### Release Coordination
**Patch Releases (Bug Fixes, Docs):**
- Can be released immediately after merge
- No version coordination needed
- Update via `aiwg -update`
**Minor Releases (Features, Platform Integrations):**
- Batch similar PRs if possible (e.g., multiple platform integrations)
- Announce in release notes
- Coordinate timing (avoid weekends, holidays)
**Major Releases (Breaking Changes):**
- Requires team discussion
- Plan migration path
- Announce well in advance
- Provide migration guide
- Update all documentation
## Example Reviews
### Example 1: Excellent PR - Immediate Approval
**Scenario:** Cursor platform integration, quality score 94/100
```markdown
## Review Summary
PR #123: Add Cursor Editor platform integration
quality score: 94/100
### Automated Quality Gates
✓ Markdown lint: PASSED
✓ Manifest sync: PASSED
✓ Documentation: COMPLETE
✓ Breaking changes: NONE
✓ Security scan: PASSED
### Manual Review
✓ Code quality: Excellent - follows all AIWG patterns
✓ Architecture: Perfect fit with existing platform integration structure
✓ UX: Clear error messages, helpful output formatting
✓ Testing: Comprehensive manual testing steps provided
### Files Changed (6 files)
- tools/cursor/setup-cursor.mjs (new, 350 lines) ✓
- tools/install/install.sh (+15 lines) ✓
- README.md (+25 lines) ✓
- docs/integrations/cursor-quickstart.md (new, 200 lines) ✓
- docs/integrations/cursor-integration.md (new, 450 lines) ✓
- tools/manifest/integrations-manifest.json (+12 lines) ✓
### What You Got Right
- **Consistency:** Followed existing platform integration patterns exactly
- **Documentation:** Comprehensive quick-start and integration docs with examples
- **Error Handling:** Excellent validation and user-friendly error messages
- **CLI Integration:** Seamless integration with existing --platform flag
### Decision
**APPROVED** with auto-merge enabled
This is an exemplary contribution! The code is clean, well-documented, and follows all our conventions. Thank you for taking the time to do this right!
Welcome to the AIWG contributors list 🎉
---
Approved by @maintainer
Auto-merge enabled - will merge when CI passes
```
**Command Used:**
```bash
aiwg -review-approve 123 --auto-merge --comment "Exemplary contribution!"
```
### Example 2: Good PR - Minor Changes Needed
**Scenario:** Windsurf platform integration, quality score 82/100
```markdown
## Review Summary
PR #125: Add Windsurf editor platform integration
quality score: 82/100
### Automated Quality Gates
✓ Markdown lint: PASSED
✓ Manifest sync: PASSED
⚠ Documentation: INCOMPLETE (missing troubleshooting section)
✓ Breaking changes: NONE
✓ Security scan: PASSED
### Manual Review
✓ Code quality: Good - minor consistency improvements needed
⚠ Architecture: Fits well, but error handling could be more robust
✓ UX: Clear output, but error messages need improvement
✓ Testing: Basic manual steps provided
### Required Changes
#### 1. Documentation: Add troubleshooting section
**File:** docs/integrations/windsurf-quickstart.md
**Location:** End of file (after examples)
**Issue:** Users will encounter common issues - need guidance
**Add:**
```markdown
## Troubleshooting
### Error: "Windsurf configuration directory not found"
**Cause:** Windsurf not installed or using non-standard location
**Fix:**
1. Verify Windsurf is installed: `which windsurf`
2. Check config location: `ls ~/.config/windsurf`
3. Specify custom location: `aiwg -deploy-agents --platform windsurf --config-dir /custom/path`
### Error: "Permission denied writing to .windsurf/rules"
**Cause:** File permissions issue
**Fix:**
```bash
chmod 755 ~/.windsurf
chmod 644 ~/.windsurf/rules
```
### Agents not loading in Windsurf
**Cause:** Windsurf needs restart after rule changes
**Fix:** Close and reopen Windsurf
```
**Why:** Every integration doc has troubleshooting - helps users self-service
#### 2. Error Handling: Improve validation messages
**File:** tools/windsurf/setup-windsurf.mjs
**Location:** Lines 45-60
**Issue:** Generic error messages don't guide users to solutions
**Current:**
```javascript
if (!fs.existsSync(configDir)) {
console.error("Configuration directory not found");
process.exit(1);
}
```
**Suggested:**
```javascript
if (!fs.existsSync(configDir)) {
console.error(`Error: Windsurf configuration directory not found at ${configDir}`);
console.error(`\nPossible solutions:`);
console.error(`1. Install Windsurf editor from https://windsurf.ai`);
console.error(`2. Verify installation: which windsurf`);
console.error(`3. Use custom location: --config-dir /path/to/config`);
process.exit(1);
}
```
**Why:** Actionable error messages reduce support burden
### What You Got Right
- **Platform Detection:** Excellent auto-detection of Windsurf installation
- **Code Structure:** Clean separation of concerns
- **Integration:** Smooth CLI integration with --platform flag
### Next Steps
1. Add troubleshooting section to quickstart (15 min)
2. Improve error messages (10 min)
3. Reply here when ready for re-review
Expected turnaround: 24-48 hours. If you have questions or need help, just ask!
---
Changes requested by @maintainer
```
**Command Used:**
```bash
aiwg -review-request-changes 125 --guidance "Add troubleshooting section to quickstart and improve error messages"
```
### Example 3: Needs Significant Work
**Scenario:** Custom SDLC workflow contribution, quality score 73/100
```markdown
## Review Summary
PR #127: Add custom workflow for microservices architecture
quality score: 73/100
### Automated Quality Gates
⚠ Markdown lint: FAILED (12 errors)
✓ Manifest sync: PASSED
⚠ Documentation: INCOMPLETE (missing quick-start, integration doc)
✓ Breaking changes: NONE
✓ Security scan: PASSED
### Manual Review
⚠ Code quality: Inconsistent with AIWG patterns
⚠ Architecture: Doesn't leverage existing flow infrastructure
⚠ UX: Output formatting inconsistent with other commands
✓ Testing: Manual steps provided but incomplete
### Required Changes
Thank you for this contribution! The idea of microservices-specific workflows is valuable. However, several areas need improvement before we can merge:
#### 1. Markdown Linting
**Issue:** 12 markdown lint errors across documentation files
**Fix:**
Run our lint fixers:
```bash
node tools/lint/fix-md12.mjs --target . --write
node tools/lint/fix-md-heading-lists.mjs --target . --write
node tools/lint/fix-md47-finalnewline.mjs --target . --write
```
Then verify:
```bash
npm exec markdownlint-cli2 "docs/**/*.md"
```
#### 2. Documentation Structure
**Issue:** Missing required documentation
**Required:**
1. **Quick-start guide:** `docs/workflows/microservices-quickstart.md`
- 5-minute getting started
- Basic example
- Common use cases
2. **Integration guide:** `docs/workflows/microservices-workflow.md`
- Detailed usage
- Configuration options
- Advanced examples
- Troubleshooting
**Template:** See `docs/integrations/cursor-quickstart.md` as reference
#### 3. Architecture Alignment
**File:** tools/workflows/microservices-workflow.mjs
**Issue:** Reimplements flow orchestration instead of using existing infrastructure
**Current Approach:** Custom orchestration logic (lines 45-150)
**Suggested Approach:** Leverage existing flow commands
Instead of custom orchestration, create a flow command that uses existing SDLC flows:
**Example:**
```javascript
// tools/workflows/microservices-workflow.mjs
import { executeFlow } from '../lib/flow-executor.mjs';
export async function microservicesWorkflow(options) {
// Use existing flows with microservices-specific configuration
await executeFlow('flow-architecture-evolution', {
archType: 'microservices',
components: options.services,
...options
});
await executeFlow('flow-test-strategy-execution', {
testType: 'integration',
scope: 'cross-service',
...options
});
}
```
**Why:** Reuses battle-tested orchestration logic, maintains consistency
**Reference:** See `tools/lib/flow-executor.mjs` for existing patterns
#### 4. Output Formatting
**File:** tools/workflows/microservices-workflow.mjs
**Lines:** 200-250
**Issue:** Inconsistent output formatting
**Follow AIWG patterns:**
```javascript
// Use our logging utilities
import { logSuccess, logWarning, logError, logInfo } from '../lib/logger.mjs';
// Consistent status symbols
logSuccess('✓ Service architecture validated');
logWarning('⚠ Service B has circular dependency');
logError('❌ Service C failed health check');
logInfo('⏳ Running integration tests...');
```
**Reference:** See `tools/lib/logger.mjs`
### What You Got Right
- **Valuable Use Case:** Microservices workflows are a real need
- **Good Examples:** Real-world service configurations
- **Testing Mindset:** Included test strategy
### Suggestions for Success
1. **Start with Documentation:** Write the quick-start first (helps clarify the UX)
2. **Reuse Infrastructure:** Don't reinvent - extend existing flows
3. **Follow Patterns:** Study similar contributions (platform integrations, other workflows)
4. **Ask Questions:** Unsure about architecture? Let's discuss before more coding
### Next Steps
1. Fix markdown linting (quick win - 5 min)
2. Add required documentation (1-2 hours)
3. Refactor to use existing flow infrastructure (2-3 hours)
4. Update output formatting (30 min)
**Estimated Effort:** 4-6 hours total
If you'd like to discuss approach before reworking, I'm happy to hop on a call or provide more detailed guidance. This is a valuable contribution worth getting right!
---
Changes requested by @maintainer
Expected response time: 3-5 days (given scope of changes)
```
**Command Used:**
```bash
aiwg -review-request-changes 127 --guidance "Align architecture with existing flows, add required docs, fix linting"
```
## Contribution Metrics
### Tracking Community Health
Use `aiwg -review-stats` to monitor:
#### Response Time Metrics
**Target:** First review within 24 hours
**Measurement:**
```bash
aiwg -review-stats --since "30 days ago" | grep "Median time to first review"
```
**Red Flags:**
- Median >48 hours: Maintainers overloaded
- High variance: Inconsistent attention
- Old PRs accumulating: Need triage
**Action Items:**
- If >48h: Recruit additional reviewers
- If inconsistent: Set reviewer rotation schedule
- If accumulating: Dedicated triage session
#### Merge Rate Metrics
**Target:** >80% merge rate (of quality contributions)
**Measurement:**
```bash
aiwg -review-stats | grep "Merged:"
# Merged: 12 (80%)
```
**Analysis:**
- <70%: Too strict or poor contributor guidance
- 90-100%: Healthy acceptance rate
- 100%: Possibly too lenient
**Action Items:**
- If low: Review rejection reasons, improve contributor docs
- If high: Ensure quality gates are working
#### Quality Score Trends
**Target:** Average quality score trending upward
**Measurement:**
```bash
aiwg -review-stats --since "90 days ago"
# Compare to:
aiwg -review-stats --since "30 days ago"
```
**Positive Trends:**
- Score increasing over time
- Fewer low-score PRs
- More first-time contributors with high scores
**Indicates:**
- Contributor docs are working
- `aiwg -contribute-*` commands helping quality
- Community learning and improving
#### Contributor Growth
**Target:** +10 new contributors per month
**Measurement:**
```bash
aiwg -review-stats --since "30 days ago" | grep "Top Contributors"
# Count new names vs. previous month
```
**Healthy Indicators:**
- New contributors each month
- Repeat contributors returning
- Diverse contribution types (not just one person doing platform integrations)
**Action Items:**
- Recognize top contributors publicly
- Welcome first-time contributors warmly
- Highlight contribution opportunities
### Monthly Health Check
**Run This Monthly:**
```bash
# Generate comprehensive stats
aiwg -review-stats --since "30 days ago" > /tmp/monthly-stats.txt
# Review:
cat /tmp/monthly-stats.txt
# Check for:
# 1. Response time under 24h median
# 2. Merge rate >80%
# 3. No PRs >7 days old
# 4. Quality scores trending up
# 5. New contributors present
```
**Share with Team:**
- Post in maintainer channel
- Discuss any red flags
- Celebrate wins (new contributors, high quality PRs)
- Plan improvements (docs, automation, etc.)
## Best Practices
### Consistency is Key
**Use Templates:** Every review should follow similar structure
**Use Commands:** Prefer `aiwg -review-*` over manual `gh` commands (ensures consistency)
**Document Decisions:** If you deviate from guidelines, explain why in PR comments
### Communication Standards
**Response Time:**
- First review: Within 24 hours (business days)
- Re-review after changes: Within 24 hours
- Questions: Within 12 hours
**Tone:**
- Professional but friendly
- Constructive, not critical
- Encouraging, especially for first-time contributors
**Specificity:**
- Always provide file/line references
- Always provide examples or suggestions
- Never say "fix this" without saying "how"
### Review Efficiency
**Parallel Review:**
- Don't review line-by-line sequentially
- Skim entire PR first (get big picture)
- Then dive into details
- Batch similar feedback together
**Use Automation:**
- Let quality gates catch mechanical issues
- Focus manual review on architecture, UX, and logic
- Trust CI to catch test failures
**Time-Box Reviews:**
- Simple PRs: 15-30 minutes
- Medium PRs: 30-60 minutes
- Complex PRs: 1-2 hours (or split across multiple sessions)
### Building Community
**Recognize Contributions:**
```markdown
# In approval comments
Thank you @contributor for this excellent work! Your attention to detail in the documentation is especially appreciated.
# In monthly updates
Shout out to @contributor1, @contributor2, @contributor3 for their platform integration contributions this month!
```
**Invest in First-Time Contributors:**
- Extra patience and explanation
- Offer to pair program or hop on call
- Follow up after merge ("How was the experience?")
**Create Contribution Opportunities:**
- Label issues as "good first contribution"
- Document "most wanted" integrations or features
- Share contribution ideas in discussions
### Maintain Quality Standards
**Never Compromise On:**
- Security (reject if any security concerns)
- Documentation (no merges without docs)
- Breaking changes (must be documented and discussed)
**Be Flexible On:**
- Code style minutiae (if functional and maintainable)
- Perfect scores (80+ is often good enough)
- Process (contributor didn't use `aiwg -contribute-*`? That's okay)
**Balance:**
- Quality vs. velocity
- Strictness vs. community growth
- Perfection vs. good enough
### Continuous Improvement
**Track Patterns:**
- Common issues across PRs? → Update contributor docs
- Repeated questions? → Add to FAQ
- quality gate missed something? → Improve automation
**Retrospectives:**
- Monthly: Review stats, discuss what's working
- Quarterly: Bigger picture - process improvements
- Annually: Major changes - quality standards, automation, etc.
**Iterate on Process:**
- This guide isn't static
- Update based on learnings
- Share improvements with team
---
## Appendix: Quick Reference
### Command Cheat Sheet
```bash
# Review PR
aiwg -review-pr <number>
# Request changes
aiwg -review-request-changes <number> --guidance "specific feedback"
# Approve PR
aiwg -review-approve <number> --auto-merge
# View stats
aiwg -review-stats --since "30 days ago"
# Manual gh commands (if needed)
gh pr view <number>
gh pr diff <number>
gh pr checks <number>
gh pr review <number> --approve
gh pr merge <number> --squash
```
### quality score Reference
| Score | Meaning | Action |
|-------|---------|--------|
| 90-100 | Excellent | Approve |
| 80-89 | Good | Minor changes or approve with notes |
| 70-79 | Acceptable | Request changes |
| <70 | Needs work | Major rework or reject |
### Review Time Targets
| PR Complexity | First Review | Re-Review | Total Cycle |
|---------------|--------------|-----------|-------------|
| Simple (docs, small fixes) | 12 hours | 12 hours | 1-2 days |
| Medium (feature, integration) | 24 hours | 24 hours | 3-5 days |
| Complex (refactor, breaking) | 48 hours | 48 hours | 1-2 weeks |
### Decision Matrix
| quality score | Gates Passed | Code Quality | Action |
|---------------|--------------|--------------|--------|
| >=90 | ✓ All | ✓ High | Approve |
| 80-89 | ✓ Most | ✓ Good | Minor changes |
| 70-79 | ⚠ Some | ⚠ Fair | Request changes |
| <70 | ❌ Failed | ❌ Poor | Reject or major rework |
---
**Document Status:** v1.0 Baseline
**Next Review:** After maintainer feedback
**Owner:** Documentation Team
**Last Updated:** 2025-10-17