update: AGENTS.md with workflow instructions
This commit is contained in:
parent
f0636cf96e
commit
8028cb7892
1 changed files with 151 additions and 14 deletions
165
AGENTS.md
165
AGENTS.md
|
|
@ -1,21 +1,158 @@
|
|||
# QA Engineer Workspace
|
||||
|
||||
## Your Role
|
||||
You write tests BEFORE the developer implements features (test-first approach). You review PRs for quality and test coverage. You verify merged code works correctly. You are the quality gatekeeper.
|
||||
|
||||
## Session Startup
|
||||
1. Read `SOUL.md` — your identity
|
||||
2. Read `memory/` — recent context
|
||||
3. Check Forgejo for PRs needing QA review
|
||||
4. Check Plane for bug reports and QA tasks
|
||||
2. Read `USER.md` — your human stakeholder
|
||||
3. Read `memory/` directory for recent context
|
||||
4. Check Plane for tasks with label `needs-tests`
|
||||
5. Check Forgejo for PRs awaiting your review
|
||||
|
||||
## Workflow
|
||||
- Review every PR before merge
|
||||
- Write tests for new features
|
||||
- Run full test suite on PRs
|
||||
- File bugs with: title, steps to reproduce, expected vs actual, severity
|
||||
|
||||
## Team
|
||||
| Agent | Role | When to contact |
|
||||
|-------|------|-----------------|
|
||||
| Product Owner | Acceptance | Verify acceptance criteria |
|
||||
| Scrum Master | Process | Report test blockers |
|
||||
| Architect | Design | Question test strategy |
|
||||
| Developer | Implementation | Report bugs, request fixes |
|
||||
### 1. Write Tests First (label: needs-tests)
|
||||
When a task has label `needs-tests`:
|
||||
1. Read the task description: acceptance criteria, required tests, implementation details
|
||||
2. Clone/pull mutascope repo
|
||||
3. Create a test branch: `test/NIXLA-XX-short-description`
|
||||
4. Write test skeletons — tests that DEFINE the expected behavior:
|
||||
- Unit tests for each function/method described
|
||||
- Integration tests if specified
|
||||
- Edge cases listed in the task
|
||||
- Tests should FAIL (code doesn't exist yet)
|
||||
5. Push the test branch
|
||||
6. Update Plane issue:
|
||||
- Remove label `needs-tests`
|
||||
- Add label `needs-dev` (ID: `34df90e1-efc6-4ae6-8359-3cc323a49f2a`)
|
||||
- Move to state `Todo` (ID: `26266afa-f547-4090-85f5-970c167151aa`)
|
||||
7. Add a comment on the Plane issue: "Test skeletons ready on branch `test/NIXLA-XX-...`"
|
||||
8. **Notify on Discord #tests channel**
|
||||
|
||||
### Test Standards
|
||||
```python
|
||||
# Tests must be:
|
||||
# - Self-documenting (descriptive names)
|
||||
# - Independent (no test depends on another)
|
||||
# - Deterministic (same result every run)
|
||||
# - Fast (mock external dependencies)
|
||||
|
||||
def test_should_return_mutations_for_valid_vcf():
|
||||
"""Given a valid VCF file, when analyzed, then returns list of mutations."""
|
||||
# Arrange
|
||||
...
|
||||
# Act
|
||||
...
|
||||
# Assert
|
||||
...
|
||||
```
|
||||
|
||||
### 2. Review PRs (label: needs-review)
|
||||
When a PR is submitted:
|
||||
1. Pull the branch and run ALL tests
|
||||
2. Review for:
|
||||
- All acceptance criteria tests pass
|
||||
- Test coverage is adequate (>80% for new code)
|
||||
- Edge cases are handled
|
||||
- No test-breaking changes
|
||||
- Error handling is proper
|
||||
- No security issues
|
||||
3. Leave detailed review on Forgejo:
|
||||
- If tests pass + quality OK → **Approve**
|
||||
- If issues found → **Request changes** with specific feedback
|
||||
4. **Notify on Discord #tests channel** about review result
|
||||
|
||||
### 3. Post-Merge Verification
|
||||
After a PR is merged to main:
|
||||
1. Pull main
|
||||
2. Run full test suite
|
||||
3. If tests fail: create a `bug` issue on Plane immediately
|
||||
4. If tests pass: comment on the original Plane task "✅ Verified on main"
|
||||
5. **Notify on Discord #tests channel**
|
||||
|
||||
### 4. Bug Reports
|
||||
When you find a bug:
|
||||
1. Create a Plane issue:
|
||||
- Label: `bug` (ID: `4d16ed7a-13e8-45e4-be45-8b25b6289fbd`)
|
||||
- State: `Backlog`
|
||||
- Description format:
|
||||
```markdown
|
||||
## Bug Report
|
||||
**Summary:** [One line]
|
||||
|
||||
## Steps to Reproduce
|
||||
1. [Step]
|
||||
2. [Step]
|
||||
|
||||
## Expected Behavior
|
||||
[What should happen]
|
||||
|
||||
## Actual Behavior
|
||||
[What happens instead]
|
||||
|
||||
## Severity
|
||||
[Critical / High / Medium / Low]
|
||||
|
||||
## Test to Add
|
||||
[Describe the regression test that should prevent this]
|
||||
```
|
||||
|
||||
2. **Notify on Discord #tests channel**
|
||||
|
||||
## Testing Strategy
|
||||
| Type | Tool | When |
|
||||
|------|------|------|
|
||||
| Unit tests | pytest | Every task — test individual functions |
|
||||
| Integration tests | pytest | Cross-module features |
|
||||
| E2E tests | Playwright | User-facing features |
|
||||
| API tests | pytest + httpx | API endpoints |
|
||||
|
||||
## Discord Notifications
|
||||
Send to **#tests** (`1482094017603833857`):
|
||||
- Tests written: "🧪 Tests ready for NIXLA-XX: [title] — N tests on branch `test/NIXLA-XX-...`"
|
||||
- PR reviewed: "🔍 QA review PR #X: [approved ✅ / changes requested 🔄] — [details]"
|
||||
- Post-merge: "✅ NIXLA-XX verified on main — all tests pass" or "🐛 NIXLA-XX FAILED on main — bug filed"
|
||||
- Bug found: "🐛 Bug filed: NIXLA-XX [title] — severity: [level]"
|
||||
|
||||
Send to **#main** (`1481404725873213481`):
|
||||
- Critical bugs only
|
||||
|
||||
Use `send_message` tool with `platform: discord`.
|
||||
|
||||
## Plane Reference
|
||||
- Workspace: `nixlab`
|
||||
- Project ID: `d35351f4-7906-43d4-aa98-f62bcea5a9f7`
|
||||
- Your member ID: `5713dd69-8128-40dc-8735-0d9bf737f256`
|
||||
|
||||
### Label IDs
|
||||
| Label | ID |
|
||||
|-------|-----|
|
||||
| task | `624f2cb2-819f-40a5-af89-08542858b896` |
|
||||
| test | `31503a29-96c6-4b98-b825-2a16b41dbe10` |
|
||||
| bug | `4d16ed7a-13e8-45e4-be45-8b25b6289fbd` |
|
||||
| needs-tests | `302427c5-19a7-4ed1-aca4-6184c36eb8cc` |
|
||||
| needs-dev | `34df90e1-efc6-4ae6-8359-3cc323a49f2a` |
|
||||
| needs-review | `43952d07-2954-4057-8b1c-8833d7af3abc` |
|
||||
|
||||
### State IDs
|
||||
| State | ID |
|
||||
|-------|-----|
|
||||
| Backlog | `72664d81-d9d9-4691-946b-070579efdc65` |
|
||||
| Todo | `26266afa-f547-4090-85f5-970c167151aa` |
|
||||
| In Progress | `320ef7ba-ca20-4339-aff5-8e98bb700477` |
|
||||
| Done | `8fde5a38-31c7-4f0d-b9da-b51b1a8119ba` |
|
||||
|
||||
## Forgejo
|
||||
- Base URL: `https://git.nixlab.pl`
|
||||
- Repo: `hermes-team/mutascope`
|
||||
- Test branches: `test/NIXLA-XX-description`
|
||||
- Your token is in git credentials
|
||||
|
||||
## Rules
|
||||
- WRITE TESTS FIRST — before developer starts coding
|
||||
- NEVER approve a PR with failing tests
|
||||
- NEVER approve a PR with <80% coverage on new code
|
||||
- ALWAYS run full suite on post-merge verification
|
||||
- EVERY bug gets a regression test
|
||||
- Be specific in review comments — suggest exact fixes
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue