agile-sprint-planning — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited agile-sprint-planning (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
🤖→👤 AI建议人类审批
| 输入项 | 类型 | 必填 | 来源 | 说明 |
|---|---|---|---|---|
| product_backlog | object[] | 是 | output/pm-monitoring/iteration-decision/prioritized_items | 产品待办列表 |
| sprint_goal | string | ○ | 用户提供 | Sprint目标描述 |
| team_capacity | object | 是 | output/pm-project/planning-resource/resource_plan | 团队容量数据 |
| sprint_duration_days | number | 是 | 用户提供 | Sprint天数 |
动作:
输出:
{
"sprint_goal_suggestion": {
"goal": "string",
"focus_area": "string",
"success_indicator": "string",
"confidence": 0.0-1.0
}
}动作:
输出:
{
"selected_stories": [{
"id": "STORY-001",
"title": "string",
"priority": "P0 | P1 | P2 | P3",
"dependencies": ["STORY-ID"],
"estimated_points": number,
"recommended_assignee": "string | null",
"selection_reason": "string"
}],
"rejected_stories": [{
"id": "string",
"reason": "string"
}],
"selection_confidence": 0.0-1.0
}动作:
输出:
{
"story_points_estimation": [{
"story_id": "STORY-001",
"title": "string",
"story_points": number,
"estimation_method": "fibonacci | t-shirt | ai-suggested",
"confidence": 0.0-1.0,
"notes": "string"
}],
"total_story_points": number,
"velocity_reference": number,
"estimation_confidence": 0.0-1.0
}动作:
输出:
{
"capacity_validation": {
"team_capacity": {
"total_available_hours": number,
"story_points_capacity": number,
"recommended_utilization": 0.0-1.0
},
"sprint_plan": {
"planned_story_points": number,
"planned_hours": number,
"utilization_rate": 0.0-1.0
},
"validation_result": "green | yellow | red",
"validation_message": "string",
"adjustment_suggestions": ["string"]
}
}动作:
输出:
# sprint_plan
## Sprint信息
- Sprint编号:
- Sprint目标:
- 开始日期:
- 结束日期:
- 团队:
## Sprint Goal
{Step 1 输出}
## 计划Stories
{Step 2 & 3 输出}
## 容量验证
{Step 4 输出}
## 风险与建议
- 识别的风险:
- 建议的关注点:
## 审批
- 审批状态:待审批存储路径:output/pm-project/agile-sprint-planning/
输出文件:sprint_plan.json、metadata.json
输出Schema:
{
"type": "object",
"required": ["sprint_plan", "metadata"],
"properties": {
"sprint_plan": {"type": "object", "description": "Sprint计划,包含目标、Story列表、容量验证和风险"},
"metadata": {"type": "object", "description": "元数据,包含Sprint ID、置信度和审批状态"}
}
}| 字段路径 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sprint_plan.sprint_goal | string | 是 | Sprint目标描述,须具体可衡量 |
| sprint_plan.stories | array | 是 | 计划Story列表,每项须含id、title、story_points、assignee |
| sprint_plan.stories[].story_points | number | 是 | 故事点估算值,须为正整数 |
| sprint_plan.stories[].status | string | 是 | Story状态,枚举值planned |
| sprint_plan.capacity_validation.status | string | 是 | 容量验证结果,枚举值green/yellow/red |
| sprint_plan.capacity_validation.message | string | 是 | 验证说明信息 |
| sprint_plan.risks | array | 否 | 风险列表,每项须含description和priority |
| sprint_plan.risks[].priority | string | 是 | 风险优先级,枚举值high/medium/low |
| metadata.sprint_id | string | 是 | Sprint唯一标识 |
| metadata.generated_at | string | 是 | 生成时间,ISO 8601格式 |
| metadata.confidence | number | 是 | 整体置信度,范围0.0-1.0 |
| metadata.human_approval_required | boolean | 是 | 是否需要人类审批,Sprint Planning须为true |
| metadata.approval_status | string | 是 | 审批状态,枚举值pending/approved/rejected |
{
"sprint_plan": {
"sprint_goal": "string",
"stories": [{
"id": "string",
"title": "string",
"story_points": number,
"assignee": "string",
"status": "planned"
}],
"capacity_validation": {
"status": "green | yellow | red",
"message": "string"
},
"risks": [{
"description": "string",
"priority": "high | medium | low"
}]
},
"metadata": {
"sprint_id": "string",
"generated_at": "ISO datetime",
"confidence": 0.0-1.0,
"human_approval_required": true,
"approval_status": "pending | approved | rejected"
}
}可用容量 = 团队人数 × 每人每天可用小时 × Sprint天数 × 利用率系数
推荐配置:
- 利用率系数:0.8(保留20%用于会议、突发情况)
- 每人每天可用小时:6小时(非8小时)| 条件 | 动作 |
|---|---|
| Backlog Stories < Sprint容量 50% | 升级至Product Owner补充需求 |
| 容量验证红色(> 100%) | 强制要求减少Story或延长Sprint |
| 依赖关系复杂导致无法选取 | 输出多个方案,升级至人类决策 |
| Story估算置信度 < 0.5 | 标注不确定性,升级至团队确认 |
| 缺失的上游输入 | 降级方案 | 输出影响 |
|---|---|---|
| Product Backlog | 用户提供需求列表(标题+优先级+估算),AI据此生成Sprint计划 | 基于用户输入生成Sprint计划,缺少结构化Backlog数据支撑 |
| Sprint目标 | AI基于高优先级Stories自动推断Sprint Goal,标注需PO确认 | Sprint Goal为AI推断,需Product Owner确认后方可执行 |
| 团队容量 | 跳过容量验证,计划中标注"需人工确认容量匹配" | Sprint计划无容量验证结果,需人工补充确认 |
| Sprint天数 | 若用户未提供Sprint天数,提示用户提供或跳过该输入相关步骤 | 容量计算和排期缺少时间范围,需人工补充 |
当上游文件缺失时,通过以下方式获取必要数据:
| 上游变更 | 影响范围 | 响应策略 |
|---|---|---|
| Product Backlog变更(优先级调整/Story增减) | Story选取结果、Sprint Goal建议 | 重新执行Story选取,更新Sprint计划和Goal建议 |
| 团队容量变更(人员变动/假期调整) | 容量验证结果、Story选取上限 | 重新计算容量,调整Story选取和容量验证 |
| Sprint天数调整 | 容量计算、排期时间线 | 重新计算可用容量,更新Sprint计划时间范围 |
| 变更类型 | 影响范围 | 通知方式 |
|---|---|---|
| Sprint计划变更(Story增减/Goal调整) | 每日同步、Sprint评审、风险管理 | 更新sprint_plan.json,通知agile-daily-sync、agile-review、risk-management |
| 容量验证结果变更 | 资源规划、团队排期 | 更新sprint_plan.json,通知planning-resource |
| 审批状态变更 | 所有下游依赖Sprint计划的Pipeline | 更新metadata.json,通知所有下游消费者 |
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.