mirror of
https://github.com/affaan-m/ECC.git
synced 2026-10-18 14:07:33 +02:00
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:
@@ -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,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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
@@ -192,7 +192,7 @@ Copy-Item -Recurse rules/typescript "$HOME/.claude/rules/"
|
||||
/plugin list ecc@ecc
|
||||
```
|
||||
|
||||
**完成!** 你现在可以使用 67 个代理、281 个技能和 94 个命令。
|
||||
**完成!** 你现在可以使用 67 个代理、282 个技能和 94 个命令。
|
||||
|
||||
### multi-* 命令需要额外配置
|
||||
|
||||
|
||||
@@ -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/ — 始终遵循的指导方针(通用 + 每种语言)
|
||||
|
||||
@@ -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 条指令 |
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user