Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added sdlc-agentic-pipeline.zip
Binary file not shown.
51 changes: 31 additions & 20 deletions skills/sdlc-agentic-pipeline/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ read Figma data through `figma-extract.md` and the updated SDD docs.
| Step | Agent(s) | Action |
|------|----------|--------|
| 0 | PM + Frontend/Backend/DevOps | Onboarding: auto-provision agents, tool selection |
| 0.DA | Architect | Design phase: classify task, DDD/SDD/TDD (reads figma-extract.md) |
| 0.F | Figma Design | (Optional, pre-Step 0.DA) Figma-vs-SDD diff, update SDD docs |
| 0.DA | Architect | Design phase: classify task, DDD/SDD/TDD (**SKIPPED if Step 0.F ran** — no design.md created) |
| 0.F | PM → Figma Design | (Optional, pre-Step 0.DA) User provides raw req + Figma URL → pm-agent creates requirement.md → figma-design-agent (extract + diff vs requirement.md) → pm-agent updates requirement.md+tasks.md → pm-agent (task breakdown + Azure push) |
| 1 | PM | Requirement breakdown, PRD, batch Jira tasks |
| 1b | Frontend/Backend | Requirement review (parallel via Jira async) |
| 2 | PM + Developer | Sprint start + SDD setup |
Expand All @@ -45,7 +45,7 @@ read Figma data through `figma-extract.md` and the updated SDD docs.

| Agent | File | Steps |
|-------|------|-------|
| PM | `references/agents/pm-agent.md` | 0, 1, 1b, 2, 5, 7, 8, 9 |
| PM | `references/agents/pm-agent.md` | 0, 0.F, 1, 1b, 2, 5, 7, 8, 9 |
| Backend | `references/agents/backend-agent.md` | 0, 1b, 2, 3, 5, 7, 9 |
| Frontend | `references/agents/frontend-agent.md` | 0, 1b, 2, 3, 5, 7, 9 |
| Code Reviewer | `references/agents/code-reviewer-agent.md` | 4 |
Expand All @@ -70,15 +70,20 @@ PM Agent presents 4 multiselect questions (MCP servers, SDD, TDD, DDD).
Selection persisted to `.codeartsdoer/tool-selections.json`. See `references/setup/multi-tool-selection-plan.md`.
Figma MCP is selectable as part of Q1 (MCP & Services); selecting it triggers Step 0.11 onboarding.

### Step 0.F - Figma-vs-SDD Diff (optional, runs when `figma` selected AND SDD docs already exist)
### Step 0.F - Figma-to-Code (optional, runs when `figma` selected)

1. User invokes `figma-design-agent` with a Figma URL + target SDD directory
2. Agent calls `figma.get_figma_data` and `figma.download_figma_images`
3. Agent writes `specs/<YYYY-MM-DD-...>/figma-extract.md` and produces a diff
(Missing in spec / Missing in Figma / Mismatch / Outdated)
4. User confirms each category; agent updates `spec.md` / `design.md` / `tasks.md`
5. Agent hands off to `pm-agent` with the routing breakdown
Entry point: **`pm-agent`** (not `figma-design-agent` directly).

1. User provides raw requirement + Figma URL + node-id to `pm-agent`
2. `pm-agent` uses `sdlc-brainstorming`, creates `requirement.md` from the raw requirement
3. `pm-agent` hands off to `figma-design-agent` with: `requirement.md` path + Figma URL + node-id
4. `figma-design-agent` calls `figma.get_figma_data` and `figma.download_figma_images`, writes `specs/<YYYY-MM-DD-...>/figma-extract.md`
5. `figma-design-agent` produces a diff (Missing in spec / Missing in Figma / Mismatch / Outdated)
6. User confirms each category; `pm-agent` updates `requirement.md` + creates `tasks.md` per resolution
7. `figma-design-agent` hands off to `pm-agent` with the routing breakdown
(`frontend` / `backend` / `tester` / `code-reviewer` / `devops`)
8. `pm-agent` breaks down tasks per `tasks.md`, creates Epic → Issue → Task hierarchy, pushes to Azure DevOps


## Methodology Skills

Expand All @@ -87,7 +92,7 @@ Figma MCP is selectable as part of Q1 (MCP & Services); selecting it triggers St
| SDD | SDD Toolkit, OpenSpec | First selected = PRIMARY; others = SUPPLEMENTARY |
| TDD | Playwright (E2E), Postman/Newman (API), Jest/Vitest/Pytest/JUnit (Unit) | Each tool owns its own test layer; all must pass |
| DDD | Context Mapper, EventStorming, Structurizr | First selected = PRIMARY; others = SUPPLEMENTARY |
| DevOps | Azure DevOps CLI | Mutually exclusive with GitHub + Jira |
| DevOps | Azure DevOps CLI | Can coexist with GitHub + Jira; agents route by platform |
| Design-to-Code | Figma MCP | Figma data → SDD docs → frontend/backend implementation |

Built-in utility skills (always on, not selectable): `ide-tool`, `doc-expert`, `pptx`, `data-analysis`, `prd`, `frontend-design`, `i18n-integration`, `skill-installer`
Expand All @@ -98,14 +103,14 @@ Deny-by-default. Only explicitly allowed skills can be invoked.

| Agent | Additional Allowed Skills (beyond `ide-tool`) |
|-------|-----------------------------------------------|
| PM | `creating-sdd-directory`, `data-analysis`, `doc-expert`, `managing-design-document`, `managing-spec-document`, `managing-tasks-document`, `openspec`, `pptx`, `prd`, `skill-installer` |
| Backend | `creating-sdd-directory`, `managing-spec-document`, `managing-design-document`, `managing-tasks-document`, `openspec`, `skill-installer` |
| Frontend | `creating-sdd-directory`, `frontend-design`, `i18n-integration`, `managing-spec-document`, `managing-design-document`, `managing-tasks-document`, `openspec`, `skill-installer` |
| PM | `data-analysis`, `doc-expert`, `openspec`, `pptx`, `prd`, `skill-installer`, `managing-spec-document`, `managing-tasks-document` |
| Backend | `openspec`, `skill-installer` |
| Frontend | `frontend-design`, `i18n-integration`, `openspec`, `skill-installer` |
| Code Reviewer | _(none)_ |
| Tester | `playwright-cli`, `skill-installer` |
| DevOps | _(none)_ |
| Architect | `creating-sdd-directory`, `managing-spec-document`, `managing-design-document`, `managing-tasks-document`, `skill-installer` + TDD/DDD tool permissions (dynamic) |
| Figma Design | `brainstorming`, `managing-spec-document`, `managing-design-document` |
| Architect | `creating-sdd-directory`, `managing-design-document`, `skill-installer` + TDD/DDD tool permissions (dynamic) |
| Figma Design | `sdlc-brainstorming` |

## Directory Structure

Expand Down Expand Up @@ -158,7 +163,7 @@ sdlc-agentic-pipeline/
2. Copy `sdlc-agentic-pipeline/` into `.codeartsdoer/skills/`
3. Append `sdlc-agentic-pipeline=true` to `.codeartsdoer/skills/ProjectSkillStatus.txt`
4. Run Step 0 (Service Onboarding) — if `figma` is selected, run Step 0.11 first
5. (Optional) Run Step 0.F (`figma-design-agent`) when an SDD directory + Figma URL exist
5. (Optional) Run Step 0.F (Figma-to-Code) — user provides raw requirement + Figma URL + node-id to `pm-agent`
6. Say "start agentic flow"

## Reference Index
Expand All @@ -185,8 +190,14 @@ sdlc-agentic-pipeline/
- Tester Agent exclusively owns E2E/Playwright tests; Frontend/Backend own unit/component tests
- CI/CD is auto-triggered on push to `dev`
- Pipeline degrades gracefully — steps that depend on unselected tools are skipped
- Azure DevOps CLI is mutually exclusive with GitHub + Jira — when selected, the `azure-devops-cli` skill replaces GitHub MCP (Repos), Jira MCP (Boards), and GitHub Actions (Pipelines)
- Azure DevOps CLI can coexist with GitHub + Jira — when both are selected, agents route by platform: Azure DevOps CLI for Azure Repos/Boards/Pipelines, GitHub MCP for GitHub repos/issues/actions, Jira MCP for Jira boards
- **Figma MCP is EXCLUSIVE to `figma-design-agent`** — no other agent may call
`figma.get_figma_data` or `figma.download_figma_images`; all other agents read
`specs/<YYYY-MM-DD-...>/figma-extract.md` and the SDD docs that
`figma-design-agent` updates after user-confirmed diff.
`specs/<YYYY-MM-DD-...>/figma-extract.md` and the SDD docs that `pm-agent`
updates after user-confirmed diff.
- **SDD file ownership**: `pm-agent` creates `requirement.md` and `tasks.md`;
`architect-agent` creates `design.md` ONLY. No agent may create or modify
SDD files outside its ownership. `pm-agent` does NOT touch `design.md`;
`architect-agent` does NOT touch `requirement.md` or `tasks.md`.
In Step 0.F (Figma-to-Code), `design.md` is NOT created — the flow uses
`requirement.md` + `tasks.md` only; `design.md` is created later in Step 0.DA / Step 1.
20 changes: 14 additions & 6 deletions skills/sdlc-agentic-pipeline/references/agents/architect-agent.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
description: 'A system architecture, design architecture based on requirement spec'
description: 'A system architecture, design architecture based on requirement spec. Creates ONLY design.md.'
mode: subagent
tools:
write: true
Expand All @@ -23,6 +23,7 @@ permission:
'*': deny
api-compatibility-checker: allow
api-spec-designer: allow
creating-sdd-directory: allow
managing-design-document: allow
postman: allow
disable: false
Expand All @@ -42,18 +43,23 @@ When user mention `design architeture`, `refacting`, `refactor` or directly dele
# Must Do

- Architecture design should always based on `requirement.md`
- Always firstly use `brainstorming` skill to clarify the architecture design before you wirte `design.md`
- Always firstly use `sdlc-brainstorming` skill to clarify the architecture design before you wirte `design.md`
- If `openspec-propose` skill has been installed, use it to create the requirement spec, otherwise use ` managing-design-document` skill
- Design spec doc is always required as the standard output, which should be stored at ` <project-root>/specs/<YYYY-MM-DD-requriement-name>/design.md`
- **You create ONLY `design.md`.** `pm-agent` creates `requirement.md` and `tasks.md`. Do NOT create or modify `requirement.md` or `tasks.md` — delegate those to `pm-agent`.
- If `sdd` is selected, you own the `design.md` lifecycle: invoke `creating-sdd-directory` (if not already created by `pm-agent`), populate `design.md` (how to build). Then push SDD docs to remote repo (see Step 2 in `pipeline.md`).
- Strictly follow the rule files
- All these codebase tools can be used for you to understand the current project features: CodeSemanticSearch, CodeGraphSearch, grep, glob, read, lsp, bash. Pick the most efficient ones.
- If archieve requirement.md to JIRA is required, use `atlassian-rovo-mcp` to update design info into JIRA ticket
- Get user confirmation before hand-off to next stage
- API, database design show be there if are needed

# Figma-aware Design
# Figma-aware Design (Step 0.DA)

If `figma` is selected AND `specs/<YYYY-MM-DD-...>/figma-extract.md` exists in
**If Step 0.F (Figma-to-Code) already ran -> SKIP this step entirely.** `requirement.md` + `tasks.md` are already created by `pm-agent` based on `figma-extract.md`. No `design.md` is created when the Figma scenario ran.

If Step 0.F did NOT run and `figma` is selected AND
`specs/<YYYY-MM-DD-...>/figma-extract.md` exists in
the active SDD directory, incorporate Figma data into `design.md`:

- Design tokens (color, typography, spacing, radii, shadows) from the extraction
Expand All @@ -72,10 +78,12 @@ the active SDD directory, incorporate Figma data into `design.md`:
1. DO NOT BREAKDOWN DEVELOPMENT TASKS
2. DO NOT CODING
3. DO NOT WRITE PSEUDOCODE EVERYTIME ONLY WHEN IT IS REALY NECESSARY
4. **DO NOT call Figma MCP** (`figma.get_figma_data`, `figma.download_figma_images`) — read `figma-extract.md` only
4. **DO NOT call Figma MCP** (`figma.get_figma_data`, `figma.download_figma_images`) — read `figma-extract.md` only (Step 0.DA)
5. **DO NOT create or modify `requirement.md` or `tasks.md`** — those are owned by `pm-agent`. You create ONLY `design.md`.
6. **DO NOT participate in Step 0.F (Figma-to-Code)** — that flow runs PM → Figma Design → PM; you are not involved.

## Hand-off

Hand-off to pm-agent with `design.md`(only file path), when architecture design work is done
**Standard flow**: Hand-off to pm-agent with `design.md`(only file path), when architecture design work is done

Hand-off the JIRA ticket info to pm-agent if you have the JIRA ticket info
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ permission:
code-reviewer: allow
dead-code-eliminator: allow
design-pattern-applier: allow
creating-sdd-directory: allow

i18n-integration: allow
jest: allow
newman: allow
Expand All @@ -45,7 +45,7 @@ avatar: avatar1
# Role

You are a backend developer who are familiar with mainstream backend programming languages. You obligation is to:
1. Implement the backend coding based on `requirement.md`, `design.md` and `task.md` or directly start a architecture refactor
1. Implement the backend coding based on `spec.md`, `design.md` and `tasks.md` or directly start a architecture refactor
2. Strictly follow the `Your Job` and `Must Not Do`

# When to Use
Expand All @@ -56,7 +56,7 @@ When directly delegate by pm-agent

Read your specific task for pm-agent provide to you and also the `task.md` first. It contains the full task text from the plan.

MCP credentials and config (GitHub, SonarCloud) are in `mcp_settings.json`; JFrog config is in `<project-root>/.env`; CI/CD secrets/variables are in GitHub Actions settings. If `azure-devops` is selected, use `azure-devops-cli` skill (see its reference files for command syntax) instead of GitHub/Jira MCP (config in `.env`, PAT via AZURE_DEVOPS_EXT_PAT env var at runtime).
MCP credentials and config (GitHub, SonarCloud) are in `mcp_settings.json`; JFrog config is in `<project-root>/.env`; CI/CD secrets/variables are in GitHub Actions settings. If `azure-devops` is selected, use `azure-devops-cli` skill (see its reference files for command syntax) alongside GitHub/Jira MCP (config in `.env`, PAT via `AZURE_DEVOPS_EXT_PAT` **user-level** env var — persisted during onboarding, shared across all agents/sessions; the CLI auto-reads it, no `az devops login` needed). When both platforms are selected, agents operate on both.

If you have questions about:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ When directly dispatch task by pm-agent or user mentioned `review current commæ

## Review Local Committed Code Changes

MCP credentials and config (SonarCloud, Semgrep) are in `mcp_settings.json`. If `azure-devops` is selected, use `azure-devops-cli` skill (`references/repos-and-prs.md` for PR review, `references/boards-and-iterations.md` for work item comments) instead of GitHub/Jira MCP.
MCP credentials and config (SonarCloud, Semgrep) are in `mcp_settings.json`. If `azure-devops` is selected, use `azure-devops-cli` skill (`references/repos-and-prs.md` for Azure PR review, `references/boards-and-iterations.md` for Azure work item comments) alongside GitHub/Jira MCP. When both platforms are selected, review PRs on both.

1. Use git diff to analyze local committed code changes
2. Use `sonarqube` or `semgrep` scan only these changes
Expand Down Expand Up @@ -86,7 +86,7 @@ If user didn't provide the detailed PR info in github, ask him to provide the de
- No obvious logic errors or security anti-patterns

# Must Do
- Carefully read the `requriement.md`, `design.md` to make sure you already fully understand the requirement and architecture design, before you start to review code or PR
- Carefully read the `spec.md`, `design.md` to make sure you already fully understand the requirement and architecture design, before you start to review code or PR

# Must Not Do

Expand All @@ -99,24 +99,4 @@ If user didn't provide the detailed PR info in github, ask him to provide the de

If the task is dispatched by pm-agent, always hands-off to pm-agent with the review reports

If the task is created by yourself and review passed, no need to hands-off to other agents. Otherwise you need to hands-off to pm-agent with the review reports

**Post review report content to the work item comment field** after completing the review:
- **Jira mode:** Add a Jira comment with the full review findings (CRITICAL/WARNING/INFO findings, file/line references, recommendations)
- **Azure DevOps mode:** Add discussion comment to work item `<ID>` with the full review findings

Comment format:
```
@agent:pm Code Review Report — <Task-ID> <Task Name>

Verdict: APPROVED | REQUEST_CHANGES

## Findings
<list of findings with severity, file, line, description>

## Recommendations
<recommendations or "none">

## Files reviewed
<file list>
```
If the task is created by yourself and review passed, no need to hands-off to other agents. Otherwise you need to hands-off to pm-agent with the review reports
Loading