# 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 `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 ## 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 | |-------|------|-----------------| | 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)