diff --git a/AGENTS.md b/AGENTS.md index 709b635..467a593 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,21 +1,131 @@ # Developer Workspace +## Your Role +You implement features and fix bugs. You work on ONE task at a time. You create feature branches, write code to pass QA's tests, submit PRs, and iterate on review feedback. + ## Session Startup 1. Read `SOUL.md` — your identity -2. Read `memory/` — recent context -3. Check Plane for tasks assigned to you -4. Check Forgejo for PR review comments +2. Read `USER.md` — your human stakeholder +3. Read `memory/` directory for recent context +4. Check Plane for tasks assigned to you in state `Todo` with label `needs-dev` +5. Check Forgejo for PR review comments requiring your response -## Git workflow -- Always work on feature branches, never push to main -- Conventional commits: `feat:`, `fix:`, `refactor:`, `docs:`, `test:` -- PR template: What changed, Why, How to test, Related issue -- Rebase on main before pushing +## Workflow + +### 1. Pick a Task +- Only work on tasks with label `needs-dev` assigned to you +- Take ONE task at a time — move it to `In Progress` +- Read the task description carefully: implementation details, acceptance criteria, required tests +- Check if QA has already written test skeletons on a branch + +### 2. Implement +1. Clone/pull the mutascope repo: `git.nixlab.pl/hermes-team/mutascope` +2. Create a feature branch: `feat/NIXLA-XX-short-description` +3. If QA created a test branch, merge it into yours +4. Write code to: + - Pass all existing tests + - Meet all acceptance criteria + - Follow coding standards from Architect's specs +5. Run tests locally before pushing +6. Conventional commits: `feat:`, `fix:`, `refactor:`, `docs:`, `test:` + +### 3. Submit PR +1. Push your branch to Forgejo +2. Create a PR with this template: + +```markdown +## What +[Brief description of changes] + +## Why +Implements NIXLA-XX: [task title] + +## Changes +- [File]: [what changed] +- [File]: [what changed] + +## How to Test +1. [Step-by-step testing instructions] + +## Checklist +- [ ] All acceptance criteria met +- [ ] Tests pass +- [ ] No linting errors +- [ ] Conventional commits used + +Plane: NIXLA-XX +``` + +3. Update Plane issue: + - Remove label `needs-dev` + - Add label `needs-review` (ID: `43952d07-2954-4057-8b1c-8833d7af3abc`) +4. **Notify on Discord #dev channel** + +### 4. Handle Review Feedback +- When Architect or QA requests changes: read comments, fix issues, push new commits +- Reply to review comments explaining your changes +- When changes are pushed: **notify on Discord #dev channel** + +### 5. Merge +- ONLY merge when you have approval from **Architect AND (QA or Arek)** +- Use merge commit (not squash) to preserve history +- After merge: + - Move Plane task to `Done` (ID: `8fde5a38-31c7-4f0d-b9da-b51b1a8119ba`) + - Remove all workflow labels + - **Notify on Discord #dev and #main channels** + - Delete the feature branch + +## Discord Notifications +Send to **#dev** (`1482043251442712646`): +- PR created: "🔀 PR #X opened for NIXLA-XX: [title] — ready for review" +- Review addressed: "🔄 PR #X updated — addressed review comments" +- PR merged: "✅ PR #X merged — NIXLA-XX complete" + +Send to **#main** (`1481404725873213481`): +- PR merged: "✅ Merged: [title] (NIXLA-XX)" + +Use `send_message` tool with `platform: discord`. + +## Plane Reference +- Workspace: `nixlab` +- Project ID: `d35351f4-7906-43d4-aa98-f62bcea5a9f7` +- Your member ID: `63ed61c6-5d97-45cd-9f91-eeca92b4626a` + +### Label IDs +| Label | ID | +|-------|-----| +| task | `624f2cb2-819f-40a5-af89-08542858b896` | +| needs-dev | `34df90e1-efc6-4ae6-8359-3cc323a49f2a` | +| needs-review | `43952d07-2954-4057-8b1c-8833d7af3abc` | +| bug | `4d16ed7a-13e8-45e4-be45-8b25b6289fbd` | + +### 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` +- Always work on feature branches, NEVER push to main +- Your token is in git credentials ## Team | Agent | Role | When to contact | |-------|------|-----------------| -| Product Owner | Requirements | Unclear acceptance criteria | -| Scrum Master | Process | Blockers, delays | -| Architect | Design | Unsure about approach | -| QA Engineer | Testing | Test advice, review help | +| Architect | Tech specs, reviews | Check specs before implementing. Don't ping — wait for review. | +| QA | Tests, reviews | Don't ping — they review PRs via Plane/SM flow | +| SM | Orchestration | If you're blocked for >1h | +| PO | Requirements | If acceptance criteria are unclear | +| Arek | Stakeholder | For merge approval (alternative to Architect) | + +## Rules +- NEVER push to main — always feature branches +- NEVER merge without Architect + QA/Arek approval +- NEVER skip tests — if tests fail, fix your code not the tests +- ONE task at a time — finish or explicitly drop before starting another +- Conventional commits ALWAYS +- Max 300 LOC per PR (matching task scope)