blog
Write release blog posts for Chorus — problem-first narrative, bilingual (zh/en), following the project's editorial style.
Complete workflow for submitting code changes — create branch, commit, open PR, check CI, fix failures, and merge.
Claude Code
$ npx -y skills add Chorus-AIDLC/Chorus --skill pr-workflow --agent claude-code
Codex
$ npx skills add Chorus-AIDLC/Chorus --skill pr-workflow -a codex -y
Cursor
$ npx skills add Chorus-AIDLC/Chorus --skill pr-workflow -a cursor -y
Gemini CLI
$ npx skills add Chorus-AIDLC/Chorus --skill pr-workflow -a gemini-cli -y
GitHub Copilot
$ npx skills add Chorus-AIDLC/Chorus --skill pr-workflow -a github-copilot -y
OpenCode
$ npx skills add Chorus-AIDLC/Chorus --skill pr-workflow -a opencode -y
Windsurf
$ npx skills add Chorus-AIDLC/Chorus --skill pr-workflow -a windsurf -y
name: pr-workflow description: Complete workflow for submitting code changes — create branch, commit, open PR, check CI, fix failures, and merge. license: AGPL-3.0 metadata: author: chorus version: "0.1.0" category: development
Complete workflow for taking local code changes through branch creation, PR, CI verification, failure fix, and merge.
git status git diff --stat git log --oneline -5
Verify before proceeding:
Branch from current HEAD. Naming convention:
| Type | Prefix | Example | |------|--------|---------| | Bug fix | `fix/` | `fix/remove-legacy-textarea` | | Feature | `feat/` | `feat/structured-ac-editor` | | Refactor | `refactor/` | `refactor/service-layer` | | Test | `test/` | `test/e2e-proposal-flow` | | Docs | `docs/` | `docs/api-reference` | | Chore | `chore/` | `chore/bump-deps` |
git checkout -b {prefix}{short-description}Stage specific files only — never use `git add .` or `git add -A`:
git add path/to/file1 path/to/file2
**Note**: Next.js paths need shell escaping:
git add src/app/\(dashboard\)/projects/\[uuid\]/file.tsx
Commit with HEREDOC for clean multi-line messages:
git commit -m "$(cat <<'EOF'
{type}: {concise description of why, not what}
{Optional body explaining context or trade-offs}
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
EOF
)"git push -u origin {branch-name}gh pr create --title "{type}: {title under 70 chars}" --body "$(cat <<'EOF'
## Summary
- Change 1
- Change 2
## Changed files
| File | Change |
|------|--------|
| `path/file.ts` | What changed |
## Test plan
- [x] Automated test passed
- [ ] Manual verification needed
Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"gh pr checks {pr-number}Get the failed logs:
gh pr checks {pr-number} # find failed run ID
gh run view {run-id} --log-failed 2>&1 | tail -80 # read failure detailsCommon failure types and fixes:
| Failure | Local repro | Fix | |---------|------------|-----| | Test assertion | `npx vitest run path/to/test.ts` | Update test expectations to match new behavior | | Type error | `npx tsc --noEmit` | Fix types; check only your errors with `\| grep {keyword}` | | Lint error | `pnpm lint` | Auto-fix or manual fix | | Missing test update | `grep -r "changedField" src/**/__tests__/` | Update test fixtures/helpers using the old field |
After fixing:
git add {fixed-files}
git commit -m "$(cat <<'EOF'
fix: {what was fixed in tests/types}
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
EOF
)"
git pushRe-check CI — repeat until green:
gh pr checks {pr-number}Only when user explicitly requests. Default to squash merge:
gh pr merge {pr-number} --squash --delete-branch
git checkout main && git pullBefore opening PR:
Before merging:
The Agent Harness for AI-Human Collaboration, inspired by the AI-DLC (AI-Driven Development Lifecycle)
Write release blog posts for Chorus — problem-first narrative, bilingual (zh/en), following the project's editorial style.
Use when manually verifying a Chorus frontend change in a real browser — finding local login credentials, driving the running dev…
Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through…
Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after…
Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the…
Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to…
Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…
Create a new Architecture Decision Record with sequential numbering and AgentDB registration