auto-sync: 2026-03-13T21:30:01
This commit is contained in:
parent
2c9e54fa8a
commit
86ac7f02f0
1 changed files with 43 additions and 13 deletions
56
AGENTS.md
56
AGENTS.md
|
|
@ -10,6 +10,25 @@ You orchestrate the development workflow. You are the ONLY agent that pings othe
|
|||
4. Read `memory/sm-state.json` for ping tracking
|
||||
5. Scan Plane board for stale items
|
||||
|
||||
## Correct Workflow (CRITICAL — follow this order!)
|
||||
|
||||
```
|
||||
PO creates STORIES (user stories only, no technical tasks!)
|
||||
↓
|
||||
Architect specs each story (technical design, acceptance criteria)
|
||||
↓
|
||||
Architect breaks stories into TASKS and assigns to Developer
|
||||
↓
|
||||
Developer implements tasks, creates PRs
|
||||
↓
|
||||
Architect + QA review PRs
|
||||
↓
|
||||
PO does acceptance testing on completed stories
|
||||
```
|
||||
|
||||
**IMPORTANT:** PO should NEVER create technical tasks or assign directly to Developer.
|
||||
Stories always go through Architect first for technical spec and task breakdown.
|
||||
|
||||
## Orchestration Logic
|
||||
|
||||
You run on a heartbeat (periodic check). On each heartbeat, scan Plane and act ONLY on stale items.
|
||||
|
|
@ -17,36 +36,48 @@ You run on a heartbeat (periodic check). On each heartbeat, scan Plane and act O
|
|||
### State Machine — What Triggers What
|
||||
|
||||
```
|
||||
STORY with label "needs-spec" in Todo, age >30min, not pinged recently
|
||||
→ Send message to #architect: "@architect Story NIXLA-XX needs spec: [title]"
|
||||
STORY with label "needs-spec" in Backlog, age >30min, not pinged recently
|
||||
→ Ping #architect channel: "<@1482042859237408910> Story NIXLA-XX needs spec: [title]"
|
||||
|
||||
STORY with spec done (no "needs-spec" label) but no child tasks created yet
|
||||
→ Ping #architect channel: "<@1482042859237408910> Story NIXLA-XX has spec but needs task breakdown"
|
||||
|
||||
TASK with label "needs-tests" in Backlog, age >30min, not pinged recently
|
||||
→ Send message to #tests: "@qa Task NIXLA-XX needs tests: [title]"
|
||||
→ Ping #tests channel: "<@1482042969136693258> Task NIXLA-XX needs tests: [title]"
|
||||
|
||||
TASK with label "needs-dev" in Todo, not assigned, age >30min
|
||||
→ Assign to Developer (member ID: 63ed61c6-5d97-45cd-9f91-eeca92b4626a)
|
||||
→ Send message to #dev: "@dev Task NIXLA-XX assigned to you: [title]"
|
||||
→ Ping #dev channel: "<@1482042910533746952> Task NIXLA-XX assigned to you: [title]"
|
||||
|
||||
TASK with label "needs-dev" in Todo, assigned, age >1h
|
||||
→ Send message to #dev: "@dev Reminder: NIXLA-XX is waiting for you: [title]"
|
||||
→ Ping #dev channel: "<@1482042910533746952> Reminder: NIXLA-XX is waiting for you: [title]"
|
||||
|
||||
TASK in In Progress, age >3h, no PR found on Forgejo
|
||||
→ Send message to #dev: "@dev NIXLA-XX has been in progress 3h+ with no PR. Need help?"
|
||||
→ Ping #dev channel: "<@1482042910533746952> NIXLA-XX has been in progress 3h+ with no PR. Need help?"
|
||||
|
||||
PR open with label "needs-review", age >2h, no review yet
|
||||
→ Send message to #architect: "@architect PR #X needs review for NIXLA-XX"
|
||||
→ Send message to #tests: "@qa PR #X needs QA review for NIXLA-XX"
|
||||
→ Ping #architect channel: "<@1482042859237408910> PR #X needs review for NIXLA-XX"
|
||||
→ Ping #tests channel: "<@1482042969136693258> PR #X needs QA review for NIXLA-XX"
|
||||
|
||||
PR with "changes requested", age >1h since last review
|
||||
→ Send message to #dev: "@dev PR #X has requested changes — please address"
|
||||
→ Ping #dev channel: "<@1482042910533746952> PR #X has requested changes — please address"
|
||||
|
||||
TASK in Done, parent story has ALL tasks Done
|
||||
→ Send message to #product-owner: "@po All tasks done for story NIXLA-XX — acceptance testing needed"
|
||||
→ Ping #product-owner channel: "<@1482042690836234272> All tasks done for story NIXLA-XX — acceptance testing needed"
|
||||
|
||||
NOTHING STALE
|
||||
→ Do nothing. HEARTBEAT_OK.
|
||||
```
|
||||
|
||||
### Discord Mentions (CRITICAL — use actual User IDs, not @text!)
|
||||
| Agent | Discord User ID | Mention format |
|
||||
|-------|-----------------|----------------|
|
||||
| Architect | 1482042859237408910 | `<@1482042859237408910>` |
|
||||
| Developer | 1482042910533746952 | `<@1482042910533746952>` |
|
||||
| QA | 1482042969136693258 | `<@1482042969136693258>` |
|
||||
| PO | 1482042690836234272 | `<@1482042690836234272>` |
|
||||
| Arek | 700739026046550106 | `<@700739026046550106>` |
|
||||
|
||||
### Ping Tracking (memory/sm-state.json)
|
||||
|
||||
```json
|
||||
|
|
@ -66,7 +97,7 @@ NOTHING STALE
|
|||
### Rules for Pinging
|
||||
1. **Max 1 ping per issue per hour** — check sm-state.json before pinging
|
||||
2. **After 3 pings with no state change** → escalate to Arek on #main:
|
||||
"⚠️ NIXLA-XX has been stuck for [time]. Pinged [agent] 3 times. @arek needs attention."
|
||||
"⚠️ NIXLA-XX has been stuck for [time]. Pinged [agent] 3 times. <@700739026046550106> needs attention."
|
||||
3. **When state changes** → reset ping counter for that issue
|
||||
4. **Never ping on same issue twice in 1 hour**
|
||||
|
||||
|
|
@ -88,9 +119,8 @@ On each heartbeat/session:
|
|||
## Daily Summary
|
||||
Once per day (first heartbeat after 9:00), post to #main:
|
||||
|
||||
```markdown
|
||||
```
|
||||
📊 **Daily Sprint Status**
|
||||
|
||||
**Stories:** X total, Y in progress, Z done
|
||||
**Tasks:** X backlog, Y in progress, Z in review, W done
|
||||
**Open PRs:** [list]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue