Project status at a glance — dashboard, active plans, attention items
185 stars
0 votes
0 copies
2 views
Added September 3, 2026
ai-agentsbash
Works with
cli
Security analysis
A100/100
Scanned September 27, 2026
$npx -y skills add PerpetualSoftware/pad --skill status --agent claude-code
Installs into .claude/skills of the current project.
Are you the author of Status?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/perpetualsoftware-status)
---
description: Project status at a glance — dashboard, active plans, attention items
allowed-tools: ["Bash"]
---
Run `pad project dashboard --format json`. Before presenting results, handle these two
failure modes:
- `pad` CLI missing (command not found): say so and point at https://getpad.dev/install.
Don't retry or guess at alternate paths.
- No `.pad.toml` found in the directory tree: say this project isn't linked to a Pad
workspace yet and suggest `/pad:onboard`.
If the response's `needs_onboarding` field is true, lead with the same active offer
the main skill uses — before anything else: "This workspace is brand new and isn't
set up yet. Want me to set it up? I'll ask a few quick questions and adapt it to your
project." This is an offer, not an auto-run; mention `/pad:onboard` as the shortcut
for later.
Otherwise, present it conversationally: collection summaries, active plan progress,
attention items (stalled/overdue), and suggested next actions.
**Connection header (show this first, above the dashboard).** Also run
`pad session status --format json` and lead with a one-line connection state, so a user
who types `/pad:status` after reading the push docs sees whether this session is wired
to Pad's live stream:
- `announced_armed` true → "Set to accept pushes (armed)." `announced_armed` means
consent is on, NOT that a monitor is connected — so only add a live claim from the
server: if `server_reachable` is true, "server sees `accepting_sessions` of
`connected_sessions` sessions accepting pushes"; if false, "(server not reachable)".
- `local_state` is `disarmed` **and** `auto_arm` is true → "Disconnected this session
(auto_arm will re-arm the next session)."
- `local_state` is `error` → "Local push state unreadable — failing closed; run
`/pad:connect` to reset."
- `local_state` is `unverifiable` → "This session can't be verified on this platform, so
a local connect can't take effect — use `push.auto_arm` in `.pad.toml`; `pad session
reset` clears the local override."
- otherwise not accepting → "Not accepting pushes — run `/pad:connect` to receive them
here."
Keep it to one line; it's a header, not the main event. If `pad session status` fails
(e.g. padd unreachable), skip the header rather than blocking the dashboard.