feat(skills): add story-lifecycle skill — file-based epic→story→sprint loop

Adds skills/story-lifecycle/SKILL.md, a community skill inspired by
the BMAD Method's epic/story/sprint workflow: a self-contained,
file-based delivery loop (Epic → Stories → Sprint → Implement → Done)
with all state under .stories/, no external PM tool required.

Rebuilt on current upstream/main as a skill-only diff, per affaan-m's
review (same blockers as #2309): the shared format-code.ts Windows fix
and github-coordination branch-coverage tests that were bundled here
now live in #2459. Skill count recomputed as 277->278 against current
main (the old bump was stale, which was the actual conflict source).

Also repoints the Related Skills entry from the closed project-context
skill (#2310) to dev-team, which now owns reading/generating
PROJECT-CONTEXT.md.
This commit is contained in:
t0kubetsu
2026-07-28 16:12:01 +02:00
parent 4e973d3eaf
commit 2491620709
8 changed files with 233 additions and 14 deletions
+1 -1
View File
@@ -11,7 +11,7 @@
{
"name": "ecc",
"source": "./",
"description": "Harness-native ECC operator layer - 67 agents, 281 skills, 94 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses",
"description": "Harness-native ECC operator layer - 67 agents, 282 skills, 94 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses",
"version": "2.1.0",
"author": {
"name": "Affaan Mustafa",
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "ecc",
"version": "2.1.0",
"description": "Harness-native ECC plugin for engineering teams - 67 agents, 281 skills, 94 legacy command shims, reusable hooks, rules, MCP conventions, and operator workflows for Claude Code plus adjacent agent harnesses",
"description": "Harness-native ECC plugin for engineering teams - 67 agents, 282 skills, 94 legacy command shims, reusable hooks, rules, MCP conventions, and operator workflows for Claude Code plus adjacent agent harnesses",
"author": {
"name": "Affaan Mustafa",
"url": "https://x.com/affaanmustafa"
+2 -2
View File
@@ -1,6 +1,6 @@
# Everything Claude Code (ECC) — Agent Instructions
This is a **production-ready AI coding plugin** providing 67 specialized agents, 281 skills, 94 commands, and automated hook workflows for software development.
This is a **production-ready AI coding plugin** providing 67 specialized agents, 282 skills, 94 commands, and automated hook workflows for software development.
**Version:** 2.1.0
@@ -152,7 +152,7 @@ Troubleshoot failures: check test isolation → verify mocks → fix implementat
```
agents/ — 67 specialized subagents
skills/ — 281 workflow skills and domain knowledge
skills/ — 282 workflow skills and domain knowledge
commands/ — 94 slash commands
hooks/ — Trigger-based automations
rules/ — Always-follow guidelines (common + per-language)
+4 -4
View File
@@ -116,12 +116,12 @@ Instead of rebuilding that process in every prompt, you install it once and make
ECC is MIT-licensed open source. It works best with Claude Code today, with first-class Codex support and adapters for Cursor, OpenCode, Gemini, Zed, GitHub Copilot, Antigravity, Qwen, and other harnesses.
Access to 67 agents, 281 skills, and 94 legacy command shims, plus hooks, rules, memory, continuous learning, and AgentShield security scanning. The agents are specialized for planning, review, build repair, security, architecture, and domain work.
Access to 67 agents, 282 skills, and 94 legacy command shims, plus hooks, rules, memory, continuous learning, and AgentShield security scanning. The agents are specialized for planning, review, build repair, security, architecture, and domain work.
| Included | Count | What it gives you |
| ---------------- | ----------: | ------------------------------------------------------------------------------------ |
| Agents | 67 agents | Planning, review, build repair, security, architecture, and domain work |
| Skills | 281 skills | TDD, research, security, docs, frontend, data, ML, operations, and more |
| Skills | 282 skills | TDD, research, security, docs, frontend, data, ML, operations, and more |
| Commands | 94 commands | Convenient entry points while ECC moves to a skills-first surface |
| Hooks and memory | Runtime | Enforcement, session summaries, continuous learning, instincts, and context controls |
| Rules | Selective | Always-loaded standards you choose by language or project |
@@ -907,7 +907,7 @@ This repo is the raw code. The guides explain everything.
```text
ECC/
|-- agents/ # 67 specialized subagents for delegation
|-- skills/ # 281 reusable workflows loaded on demand
|-- skills/ # 282 reusable workflows loaded on demand
|-- commands/ # 94 maintained slash-command shims
|-- rules/ # opt-in common and language standards
|-- hooks/ # runtime automation and enforcement
@@ -1413,7 +1413,7 @@ See [affaan-m/ECC#2065](https://github.com/affaan-m/ECC/issues/2065).
|---------|-----------------------|------------|-----------|----------|----------------|
| **Agents** | 67 | Shared (AGENTS.md) | Shared (AGENTS.md) | 12 | N/A |
| **Commands** | 94 | Shared | Instruction-based | 35 | 5 prompts |
| **Skills** | 281 | Shared | 10 (native format) | 37 | Via instructions |
| **Skills** | 282 | Shared | 10 (native format) | 37 | Via instructions |
| **Hook Events** | 8 types | 15 types | None yet | 11 types | None |
| **Hook Scripts** | 20+ scripts | 16 scripts (DRY adapter) | N/A | Plugin hooks | N/A |
| **Rules** | 34 (common + lang) | 34 (YAML frontmatter) | Instruction-based | 13 instructions | 1 always-on file |
+1 -1
View File
@@ -192,7 +192,7 @@ Copy-Item -Recurse rules/typescript "$HOME/.claude/rules/"
/plugin list ecc@ecc
```
**完成!** 你现在可以使用 67 个代理、281 个技能和 94 个命令。
**完成!** 你现在可以使用 67 个代理、282 个技能和 94 个命令。
### multi-* 命令需要额外配置
+2 -2
View File
@@ -1,6 +1,6 @@
# Everything Claude Code (ECC) — 智能体指令
这是一个**生产就绪的 AI 编码插件**,提供 67 个专业代理、281 项技能、94 条命令以及自动化钩子工作流,用于软件开发。
这是一个**生产就绪的 AI 编码插件**,提供 67 个专业代理、282 项技能、94 条命令以及自动化钩子工作流,用于软件开发。
**版本:** 2.1.0
@@ -147,7 +147,7 @@
```
agents/ — 67 个专业子代理
skills/ — 281 个工作流技能和领域知识
skills/ — 282 个工作流技能和领域知识
commands/ — 94 个斜杠命令
hooks/ — 基于触发的自动化
rules/ — 始终遵循的指导方针(通用 + 每种语言)
+3 -3
View File
@@ -256,7 +256,7 @@ Copy-Item -Recurse rules/typescript "$HOME/.claude/rules/"
/plugin list ecc@ecc
```
**搞定!** 你现在可以使用 67 个智能体、281 项技能和 94 个命令了。
**搞定!** 你现在可以使用 67 个智能体、282 项技能和 94 个命令了。
***
@@ -1170,7 +1170,7 @@ opencode
|---------|---------------|----------|--------|
| 智能体 | PASS: 67 个 | PASS: 12 个 | **Claude Code 领先** |
| 命令 | PASS: 94 个 | PASS: 35 个 | **Claude Code 领先** |
| 技能 | PASS: 281 项 | PASS: 37 项 | **Claude Code 领先** |
| 技能 | PASS: 282 项 | PASS: 37 项 | **Claude Code 领先** |
| 钩子 | PASS: 8 种事件类型 | PASS: 11 种事件 | **OpenCode 更多!** |
| 规则 | PASS: 29 条 | PASS: 13 条指令 | **Claude Code 领先** |
| MCP 服务器 | PASS: 14 个 | PASS: 完整 | **完全对等** |
@@ -1278,7 +1278,7 @@ ECC 是**第一个最大化利用每个主要 AI 编码工具的插件**。以
|---------|-----------------------|------------|-----------|----------|
| **智能体** | 67 | 共享 (AGENTS.md) | 共享 (AGENTS.md) | 12 |
| **命令** | 94 | 共享 | 基于指令 | 35 |
| **技能** | 281 | 共享 | 10 (原生格式) | 37 |
| **技能** | 282 | 共享 | 10 (原生格式) | 37 |
| **钩子事件** | 8 种类型 | 15 种类型 | 暂无 | 11 种类型 |
| **钩子脚本** | 20+ 个脚本 | 16 个脚本 (DRY 适配器) | N/A | 插件钩子 |
| **规则** | 34 (通用 + 语言) | 34 (YAML 前页) | 基于指令 | 13 条指令 |
+219
View File
@@ -0,0 +1,219 @@
---
name: story-lifecycle
description: Manage a file-based epic → story → sprint development loop without requiring an external project management tool. Creates and tracks epics, breaks them into user stories, assigns them to sprints, and drives implementation story by story. Use when starting a new feature initiative or when the team has no Jira/Linear/Taiga but needs structured delivery tracking.
metadata:
origin: community
inspired-by: bmad-method (bmad-create-epics-and-stories, bmad-dev-story, bmad-sprint-planning)
---
# Story Lifecycle
A self-contained, file-based delivery loop: **Epic → Stories → Sprint → Implement → Done**.
No external PM tool required. All state lives in the repo under `.stories/`.
## When to Activate
- Starting a feature initiative and wanting structured delivery without a Jira/Linear/Taiga setup
- Breaking down a PRD or architecture doc into implementable units
- User says "create epics and stories", "plan this sprint", "what's next to build", or "implement the next story"
- Onboarding a project that tracks work in markdown files
### When NOT to Use
| Condition | Use Instead |
| --- | --- |
| Team already uses Taiga | `project-flow-ops` (GitHub/Linear) or Taiga MCP directly |
| One-off task with no breakdown needed | just do it |
| Architecture design first | `ecc:architect` then return here |
| PRD creation first | `ecc:plan-prd` then return here |
## Directory Layout
```
.stories/
epics/
<slug>.md # one file per epic
sprints/
sprint-<n>.md # one file per sprint
<story-id>.md # individual story files at root
```
Story IDs follow the pattern `<epic-slug>-<n>` (e.g. `auth-flow-3`).
## Commands
Invoke this skill with one of these sub-commands:
| Sub-command | What it does |
| --- | --- |
| `create-epic <title>` | Create a new epic file |
| `create-stories <epic-slug>` | Break an epic into user stories |
| `plan-sprint <n>` | Assign ready stories to a sprint |
| `implement <story-id>` | Drive implementation of a single story |
| `status` | Print a summary of all epics and story states |
If no sub-command is given, run `status` first and ask which action to take.
## Epic File Format
```markdown
# Epic: <Title>
**Slug:** <slug>
**Status:** draft | ready | in-progress | done
**Created:** YYYY-MM-DD
## Goal
<One paragraph: what user problem this epic solves and what success looks like.>
## Scope
- <in-scope item>
- <in-scope item>
## Out of Scope
- <explicitly excluded item>
## Stories
| ID | Title | Status |
| --- | --- | --- |
| <slug>-1 | <title> | todo |
```
## Story File Format
```markdown
# Story: <Title>
**ID:** <epic-slug>-<n>
**Epic:** <epic-slug>
**Sprint:** <n or unassigned>
**Status:** todo | in-progress | review | done
**Points:** <1 | 2 | 3 | 5 | 8>
## Context
<Why this story exists. One sentence linking it to the epic goal.>
## Acceptance Criteria
- [ ] <concrete, testable criterion>
- [ ] <concrete, testable criterion>
- [ ] <concrete, testable criterion>
## Technical Notes
<Constraints, edge cases, or implementation hints. Omit if none.>
## Definition of Done
- [ ] Code merged to main
- [ ] Tests cover the acceptance criteria
- [ ] No new lint errors
```
## Sprint File Format
```markdown
# Sprint <n>
**Start:** YYYY-MM-DD
**End:** YYYY-MM-DD
**Goal:** <one sentence>
## Stories
| ID | Title | Points | Status |
| --- | --- | --- | --- |
| <id> | <title> | <pts> | todo |
## Total Points: <sum>
```
## Workflow
### 0. Bootstrap (run once per project)
Before any sub-command writes to `.stories/`, check whether the directory exists:
```bash
test -d .stories || mkdir -p .stories/epics .stories/sprints
```
`create-epic` runs this check automatically. All other sub-commands assume `.stories/` exists and fail with a clear message if it does not: "Run `story-lifecycle create-epic` first to initialise the .stories/ layout."
### 1. create-epic
1. Run the bootstrap check above
2. Ask for the epic title and goal if not provided
3. Derive a slug (lowercase, hyphen-separated)
4. Write `.stories/epics/<slug>.md` using the epic template
5. Print: `Epic created: .stories/epics/<slug>.md`
### 2. create-stories
1. Read the epic file
2. Decompose the scope into 3–8 user stories following "As a… I want… so that…" format
3. Write one `.stories/<slug>-<n>.md` per story
4. Update the stories table in the epic file
5. Print a summary table
When decomposing:
- Prefer vertical slices (end-to-end thin feature) over horizontal (all backend first)
- Keep each story implementable in one session
- Mark dependencies between stories in Technical Notes
### 3. plan-sprint
1. Run `status` to show all `todo` stories with their points
2. Ask for sprint goal and dates if not provided
3. Ask the user to select stories by ID (or select automatically to fill ~80% of last sprint's velocity; default to 8 points for a first sprint)
4. Write `.stories/sprints/sprint-<n>.md`
5. Update `Sprint` field in each selected story file
### 4. implement
1. Read the story file
2. Read `PROJECT-CONTEXT.md` if it exists
3. Summarize the story goal and acceptance criteria to the user
4. Ask: "Ready to start? Any blockers?"
5. Implement the story using the appropriate ECC agents:
- Code: implement, then delegate review to the language-specific reviewer agent
(`python-reviewer`, `typescript-reviewer`, `go-reviewer`, `rust-reviewer`, etc.
— detect from project files; fall back to `ecc:code-reviewer` if unsure)
- Tests: delegate to `tdd-workflow` or `tdd-guide`
- Docs: update inline
6. Walk through each acceptance criterion and verify it is met
7. Mark story status as `done`, update the epic's stories table, and update the matching row in `.stories/sprints/sprint-<n>.md`'s stories table to `done`
### 5. status
Print:
```
Epic: <title> [<status>]
✓ <story-id> <title>
→ <story-id> <title> ← in-progress
· <story-id> <title> ← todo
```
Show sprint assignment when relevant.
## Anti-Patterns
- Writing stories that are too large to implement in one session
- Storing story files outside `.stories/` — breaks the status command
- Duplicating content already in `PROJECT-CONTEXT.md`
- Skipping acceptance criteria — they are the only definition of done
## Related Skills
- `dev-team` — reads and can generate `PROJECT-CONTEXT.md`; run it first to establish the project brief before creating epics
- `ecc:plan-prd` — create a PRD first if requirements are unclear
- `ecc:architect` — design the architecture before creating stories for a new system
- `council` — use when stories surface a genuine design tradeoff before implementation
- `project-flow-ops` — sync completed epics to GitHub issues or Linear