skills/phase-status/SKILL.md
Query the status of a phase. Returns structured status information for external consumers.
npx skillsauth add adamrdrew/ushabti phase-statusInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill provides a stable public API for external tools (e.g., Pharaoh) to query phase status without directly coupling to Ushabti's internal file structure.
/phase-status [ARGUMENT]
Where ARGUMENT can be:
latest — returns the most recently modified phase (default if empty)0002-welcome-banner)welcome-banner)Find the phase with the most recently modified progress.yaml:
latest_phase=$(find .ushabti/phases -name "progress.yaml" -type f -exec ls -t {} + 2>/dev/null | head -1)
if [ -n "$latest_phase" ]; then
phase_dir=$(dirname "$latest_phase")
else
# No phases found
fi
Match directory names (exact or partial):
slug="$ARGUMENTS"
# Try exact match first
if [ -d ".ushabti/phases/$slug" ]; then
phase_dir=".ushabti/phases/$slug"
else
# Try partial match (first alphabetically)
phase_dir=$(find .ushabti/phases -maxdepth 1 -type d -name "*$slug*" | sort | head -1)
fi
Return exactly this format (parseable structured output):
PHASE_STATUS:
slug: {phase directory name}
status: {planned|building|review|complete}
steps_implemented: {count}
steps_total: {count}
If phase not found:
PHASE_STATUS:
error: Phase not found
Once you have the phase directory:
# Get slug (directory basename)
slug=$(basename "$phase_dir")
# Get status
phase_status=$(grep "^ status:" "$phase_dir/progress.yaml" 2>/dev/null | awk '{print $2}')
# Count implemented steps
steps_implemented=$(grep -c "implemented: true" "$phase_dir/progress.yaml" 2>/dev/null || echo 0)
# Count total steps
steps_total=$(grep -c "implemented:" "$phase_dir/progress.yaml" 2>/dev/null || echo 0)
Then output:
cat <<EOF
PHASE_STATUS:
slug: $slug
status: $phase_status
steps_implemented: $steps_implemented
steps_total: $steps_total
EOF
The output format is a public contract. External tools parse this format. Any change to the structure is a breaking change and must be versioned appropriately.
data-ai
Set the status field in a phase's progress.yaml. Use instead of manual Edit calls when transitioning phase status.
data-ai
Mark a step as implemented in progress.yaml with notes and touched files. Use after completing each step instead of manual Edit calls.
testing
# List Cards Scan and list all Hieroglyphs-compatible cards in `.ushabti/cards/`, with optional filtering by status or other criteria. ## When to Use Use this skill when: - You need to see all available work items - Looking for cards in a specific state (e.g., only `todo` cards) - Determining which cards to plan next - Checking card priorities and types ## Card Location Cards are stored in: ``` .ushabti/cards/{slug}/card.md ``` Each card is a directory containing a `card.md` file with YAML
development
Kick a phase back to building — sets status and adds new step entries to progress.yaml. Use when requesting fixes from Builder.