Best use case
specs-status is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
현재 프로젝트의 EARS 스펙 상태 현황 표시
Teams using specs-status should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/specs-status/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How specs-status Compares
| Feature / Agent | specs-status | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
현재 프로젝트의 EARS 스펙 상태 현황 표시
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# /specs-status [project|all]
현재 프로젝트 또는 지정된 프로젝트의 스펙 상태를 표시합니다.
## Arguments
- **无参数** - 현재 디렉토리명을 프로젝트명으로 사용
- **project-name** - 지정된 프로젝트의 스펙만 표시
- **all** - 모든 프로젝트의 스펙을 표시
## Implementation
```bash
specs-status() {
local SPECS_DIR="$HOME/.claude/specs"
local target_project="$1"
local projects=()
# Determine which projects to show
if [[ -z "$target_project" ]]; then
# No argument: use current directory basename
target_project="$(basename "$PWD")"
projects=("$target_project")
elif [[ "$target_project" == "all" ]]; then
# Show all projects
if [[ ! -d "$SPECS_DIR" ]]; then
echo "No specs directory found"
return 0
fi
# Get all subdirectories in specs directory
while IFS= read -r -d '' dir; do
projects+=("$(basename "$dir")")
done < <(find "$SPECS_DIR" -mindepth 1 -maxdepth 1 -type d -print0 | sort -z)
else
# Specific project
projects=("$target_project")
fi
# Exit if no projects found
if [[ ${#projects[@]} -eq 0 ]]; then
echo "No projects found"
return 0
fi
# Process each project
for project in "${projects[@]}"; do
local project_dir="$SPECS_DIR/$project"
echo ""
echo "## Specs Status: $project"
echo ""
# Check if project directory exists
if [[ ! -d "$project_dir" ]]; then
echo "No specs found for project $project"
continue
fi
# Track counts
local pending_count=0 doing_count=0 done_count=0
local pending_specs=() doing_specs=() done_specs=()
# Process each status directory
for status in pending doing done; do
local status_dir="$project_dir/$status"
if [[ ! -d "$status_dir" ]]; then
continue
fi
# Find all .ears.md files in status directory
while IFS= read -r -d '' spec_file; do
local spec_id
spec_id="$(basename "$spec_file" .ears.md)"
local title="" priority="" created=""
# Parse metadata from file using grep for safety
# Extract title (first line with # SPEC-ID: format, e.g., "# 001: Title")
title="$(grep -m1 "^# *[0-9]*: " "$spec_file" 2>/dev/null | sed 's/^# *[0-9]*: //')"
# Extract created date
created="$(grep '^-' "$spec_file" 2>/dev/null | grep 'created:' | sed 's/.*created: *//' | head -1)"
# Extract priority
priority="$(grep '^-' "$spec_file" 2>/dev/null | grep 'priority:' | sed 's/.*priority: *//' | head -1)"
# Default values if not found
[[ -z "$title" ]] && title="(no title)"
[[ -z "$priority" ]] && priority="medium"
[[ -z "$created" ]] && created="(unknown)"
case "$status" in
pending)
((pending_count++))
pending_specs+=("$spec_id|$title|$priority|$created")
;;
doing)
((doing_count++))
doing_specs+=("$spec_id|$title|$priority|$created")
;;
done)
((done_count++))
done_specs+=("$spec_id|$title|$priority|$created")
;;
esac
done < <(find "$status_dir" -maxdepth 1 -type f -name "*.ears.md" -print0 | sort -z)
done
# Display summary table
echo "| Status | Count |"
echo "|---------|-------|"
echo "| Pending | $pending_count |"
echo "| Doing | $doing_count |"
echo "| Done | $done_count |"
echo ""
# Check if any specs found
if [[ $pending_count -eq 0 && $doing_count -eq 0 && $done_count -eq 0 ]]; then
echo "No specs found for project $project"
continue
fi
# Display pending specs
if [[ $pending_count -gt 0 ]]; then
echo "### Pending"
for spec in "${pending_specs[@]}"; do
IFS='|' read -r spec_id spec_title spec_priority spec_created <<< "$spec"
echo "- **$spec_id**: $spec_title ($spec_priority) - created: $spec_created"
done
echo ""
fi
# Display doing specs
if [[ $doing_count -gt 0 ]]; then
echo "### Doing"
for spec in "${doing_specs[@]}"; do
IFS='|' read -r spec_id spec_title spec_priority spec_created <<< "$spec"
echo "- **$spec_id**: $spec_title ($spec_priority) - created: $spec_created"
done
echo ""
fi
# Display done specs
if [[ $done_count -gt 0 ]]; then
echo "### Done"
for spec in "${done_specs[@]}"; do
IFS='|' read -r spec_id spec_title spec_priority spec_created <<< "$spec"
echo "- **$spec_id**: $spec_title ($spec_priority) - created: $spec_created"
done
echo ""
fi
done
}
specs-status "$@"
```Related Skills
status
Use when the user returns to a session and asks about progress, current state, what happened, or where they left off. Provides status dashboard and execution recovery.
generate-status-report
Comprehensive system status report with services, infrastructure, performance metrics, and recommendations
flowbit-specs
Spec-driven development rules for Flowbit. Always follow /specs as source of truth.
dev-swarm-tech-specs
Define technical specifications including tech stack, security, theme standards (from UX mockup), coding standards, and testing standards. Use when user asks to define tech specs, choose tech stack, or start Stage 7 after architecture.
conductor-status
Display project status, active tracks, and next actions
architecture-status
Reports on the health and state of architecture documentation (counts of ADRs, reviews, activity levels, documentation gaps). Use when the user asks "What's our architecture status?", "Show architecture documentation", "How many ADRs do we have?", "What decisions are documented?", "Architecture health check", or wants an overview/summary of documentation state. Do NOT use for listing team members (use list-members), creating new documents (use create-adr), or conducting reviews (use architecture-review or specialist-review).
asyncredux-action-status
Checks an AsyncRedux (Flutter) action's completion status using ActionStatus right after the dispatch returns. Use only when you need to know whether an action completed, whether it failed with an error, what error it produced, or how to navigate based on success or failure.
lisa-epic-status
Show detailed status for an epic
agent-file-specs
Contains the complete specifications for AI coding assistant customization files including agents, skills, prompts, and instructions. Works with GitHub Copilot, Claude Code, Codex, OpenCode, and other providers. Use this skill when you need to reference the correct file format, required fields, supported attributes, file locations, or VS Code settings for any customization file. Follows the Agent Skills open standard (agentskills.io).
advanced-statusline
Implement AI-powered statusline with session tracking, plan detection, workspace emojis, and intelligent caching for Claude Code
analyzing-branch-status
Use when user wants detailed status report for single autonomy branch including iteration timeline and metrics progression
agentuity-cli-git-status
Show GitHub connection status for current project. Requires authentication