home / skills / yellinzero / aico / aico-pm-story-acceptance

aico-pm-story-acceptance skill

/.codex/skills/aico-pm-story-acceptance

This skill verifies frontend and backend task completion for a story and updates acceptance criteria checkboxes accordingly.

npx playbooks add skill yellinzero/aico --skill aico-pm-story-acceptance

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
4.1 KB
---
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**:
   - Check `docs/reference/frontend/tasks/` for frontend tasks
   - Check `docs/reference/backend/tasks/` for backend tasks
4. **Verify all tasks completed**:
   - 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]`

Overview

This skill verifies and closes PM stories by checking both frontend and backend task files, then updates the story acceptance criteria checkboxes. It prevents premature closure by requiring all related tasks under docs/reference/frontend/tasks/ and docs/reference/backend/tasks/ to be completed before marking a story done. The skill reports progress and lists any incomplete tasks when closure is not yet possible.

How this skill works

Identify the story ID and load docs/reference/pm/stories/{story-id}.md. Inspect all related task files in docs/reference/frontend/tasks/ and docs/reference/backend/tasks/ and read their status markers (βœ… completed, πŸ”„ in_progress, ⏳ pending). If every referenced frontend and backend task is completed, update the story file acceptance criteria checkboxes from - [ ] to - [x]. If any task is incomplete, return a concise report showing progress and the specific pending tasks.

When to use it

  • When frontend or backend notifies "task completed, please verify"
  • When a user asks to "verify story", "accept story", "close story", or "mark story done"
  • To check if a story can be marked complete before release or demo
  • When asked "is story X done?" or "can we close story X?"

Best practices

  • Always check both docs/reference/frontend/tasks/ and docs/reference/backend/tasks/ for the story
  • Do not update story checkboxes unless every related task status is βœ… completed
  • Report incomplete tasks with file paths and current status so engineers know what remains
  • Keep changes minimal: only replace - [ ] with - [x] in the Acceptance Criteria section
  • Confirm language setting from aico.json before producing any user-facing messages

Example use cases

  • A frontend engineer says "ready for verification" β€” run the check, confirm backend tasks are complete, then update story checkboxes if all clear
  • A PM asks "is S-042 done?" β€” generate a report showing frontend/backend completion counts and list any pending tasks
  • After a sprint demo, quickly verify multiple stories to prepare a release note by updating acceptance criteria for fully completed stories
  • Prevent accidental closure by refusing to mark a story done when any task shows πŸ”„ in_progress or ⏳ pending

FAQ

What if a story has only frontend tasks?

You still must check backend tasks directory; if none exist for that story, only frontend checks are required. Update acceptance only when all present tasks are βœ… completed.

How are statuses recognized?

Task files must use the status markers βœ… completed, πŸ”„ in_progress, or ⏳ pending. The skill uses these exact markers to determine readiness.