APM

>Agent Skill

@yellinzero/aico-pm-story-acceptance

skilldevelopment

Verify and close stories after frontend/backend tasks are completed. Check ALL related task files, update story acceptance criteria checkboxes. UNIQUE VALUE: Ensures BOTH frontend AND backend tasks are verified before closing story. Prevents premature story closure. Use this skill when: - Frontend or backend notifies "task completed, please verify" - User asks to "verify story", "accept story", "close story", "mark story done" - Need to check if a story can be marked as complete - User asks "is story X done?", "can we close story X?" CRITICAL: Must check BOTH frontend tasks (docs/reference/frontend/tasks/) AND backend tasks (docs/reference/backend/tasks/) before closing. Output: Update story file checkboxes from `- [ ]` to `- [x]`

apm::install
$apm install @yellinzero/aico-pm-story-acceptance
apm::skill.md
---
name: aico-pm-story-acceptance
description: |
  Verify and close stories after frontend/backend tasks are completed. Check ALL related task files, update story acceptance criteria checkboxes.

  UNIQUE VALUE: Ensures BOTH frontend AND backend tasks are verified before closing story. Prevents premature story closure.

  Use this skill when:
  - Frontend or backend notifies "task completed, please verify"
  - User asks to "verify story", "accept story", "close story", "mark story done"
  - Need to check if a story can be marked as complete
  - User asks "is story X done?", "can we close story X?"

  CRITICAL: Must check BOTH frontend tasks (docs/reference/frontend/tasks/) AND backend tasks (docs/reference/backend/tasks/) before closing.
  Output: Update story file checkboxes from `- [ ]` to `- [x]`
---

# Story Acceptance

## Language Configuration

Before generating any content, check `aico.json` in project root for `language` field to determine the output language. If not set, default to English.

## Process

1. **Identify the story**: Get story ID (e.g., S-001) from notification or user
2. **Read the story**: Load `docs/reference/pm/stories/{story-id}.md`
3. **Find related tasks** (use Strategy 1 if available, fallback to Strategy 2):
   - **Strategy 1 (Preferred)**: Read "Related Tasks" section from story file
     - Story file should contain task list created by task-breakdown
     - Directly read the listed task files
   - **Strategy 2 (Fallback)**: Search task directories
     - Search `docs/reference/frontend/tasks/` for files related to the story
     - Search `docs/reference/backend/tasks/` for files related to the story
4. **Verify all tasks completed**:
   - Read each task file's `> **Status**:` field
   - All task statuses should be `completed`
   - No `pending` or `in_progress` tasks remaining
5. **Update story**:
   - If ALL tasks completed → Update acceptance criteria `- [ ]` to `- [x]`
   - If partial → Report progress, list incomplete tasks

## Verification Checklist

```markdown
## Story: S-XXX

### Frontend Tasks

- [x] docs/reference/frontend/tasks/s-xxx.md - All completed

### Backend Tasks

- [x] docs/reference/backend/tasks/s-xxx.md - All completed

### Result: ✅ Ready to close / ⏳ Waiting for tasks
```

## Task Status Mapping

| Task Status      | Meaning           |
| ---------------- | ----------------- |
| `✅ completed`   | Task done         |
| `🔄 in_progress` | Currently working |
| `⏳ pending`     | Not started       |

## Story Update Format

When all tasks are complete, update the story file:

```markdown
## Acceptance Criteria

- [x] Criterion 1 (was `- [ ]`)
- [x] Criterion 2 (was `- [ ]`)
- [x] Criterion 3 (was `- [ ]`)
```

## Decision Logic

```
Has frontend tasks? ──Yes──> Check frontend/tasks/{story}.md
        │                            │
        No                     All completed?
        │                       │        │
        ▼                      Yes       No
Has backend tasks? ──Yes──> Check backend/tasks/{story}.md
        │                            │
        No                     All completed?
        │                       │        │
        ▼                      Yes       No
All checks passed? ─────────────┘        │
        │                                │
       Yes                              No
        │                                │
        ▼                                ▼
Update story checkboxes          Report incomplete tasks
```

## Key Rules

- MUST check BOTH frontend and backend tasks before closing
- ONLY update story when ALL related tasks are completed
- ALWAYS report which tasks are still pending if not ready to close
- Use exact checkbox format: `- [x]` for completed, `- [ ]` for pending

## Output Examples

### All Complete

```
## Story S-001 Acceptance Result

✅ **Ready to Close**

### Task Check
- Frontend: 3/3 completed
- Backend: 2/2 completed

Story acceptance criteria updated.
```

### Partial Complete

```
## Story S-001 Acceptance Result

⏳ **Waiting for Tasks**

### Task Check
- Frontend: 3/3 completed ✅
- Backend: 1/2 completed ⏳

### Incomplete Tasks
- [ ] Backend Task 2: Implement API endpoint
```

## Common Mistakes

- ❌ Close story with pending tasks → ✅ Check ALL related tasks first
- ❌ Only check frontend OR backend → ✅ Check BOTH if story has both
- ❌ Forget to update checkboxes → ✅ Always update `- [ ]` to `- [x]`