Skip to content
Back to skills

Praxis Watch

ASecurity

Use when the user wants one background session watching both the PR review-request channel and their assigned tickets — "lance la veille", "/loop /praxis-watch", "surveille les PR et mes tickets". One pass per invocation, designed for /loop. Do NOT use for a single watcher on demand (/praxis-watch-prs, /praxis-watch-tickets).

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 5, 2026
code-quality

Security analysis

A100/100

Scanned October 5, 2026

npx -y skills add txreplay/praxis --skill praxis-watch --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Praxis Watch?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Praxis Watch
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/txreplay-praxis-watch/badge)](https://www.skillsdirectory.com/skills/txreplay-praxis-watch)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: praxis-watch
description: Use when the user wants one background session watching both the PR review-request channel and their assigned tickets — "lance la veille", "/loop /praxis-watch", "surveille les PR et mes tickets". One pass per invocation, designed for /loop. Do NOT use for a single watcher on demand (/praxis-watch-prs, /praxis-watch-tickets).
argument-hint: "[state] [prs <args…>] [tickets <args…>]"
---

**YOU ARE EXECUTING THE `/praxis-watch` SKILL.** One pass = one `praxis-watch-prs` pass, then — at most every `watch.tickets.interval_sec` — one `praxis-watch-tickets` pass, then **one** report and **one** next-pass decision.

## References

- [watch.md](../references/watch.md) — config, window, next pass

## Arguments

| Argument | Effect |
|---|---|
| *(none)* | Normal pass |
| `state` (or `status`) | State tables of both watchers (`praxis-watch-prs status`, `praxis-watch-tickets state`). No remote call. Stop. |
| `prs <args…>` | Forward to `praxis-watch-prs` (`watch <pr>`, `stop <pr>`, `force <pr>`, `unwatch <pr>`), then the normal pass |
| `tickets <args…>` | Forward to `praxis-watch-tickets` (`skip <KEY>`, `unskip <KEY>`, `force <KEY>`, `post=auto`), then the normal pass |

## Pass

1. **Window** — one `ToolSearch` call for `ScheduleWakeup,PushNotification`. Outside the window: one line, then step 5.
2. **PRs** — invoke `praxis-watch-prs` (Skill tool) with `chained` plus forwarded args.
3. **Tickets** — `{state_dir}/tickets/state.json` → `lastRunAt` older than `watch.tickets.interval_sec`, absent, or `tickets …` args given → invoke `praxis-watch-tickets` with `chained` plus forwarded args. Otherwise one line « Tickets : prochaine passe à HH:MM ».
4. **Report** — both reports under one `## Passe HH:MM` heading, PRs first. Nothing else.
5. **Next pass** — watch.md › Next pass with `watch.prs.interval_sec`; `noop: true` only when neither watcher changed anything.

## Rules inherited, not relaxed

Every gate of both sub-skills applies: no review, comment, approval, chat message or provider comment without `AskUserQuestion` (except `tickets post=auto`, opt-in per launch); read-only on the checkout; never touch `.current`; state outside the repo. When both passes return questions, ask them in **one** `AskUserQuestion` batch, PRs first.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…