Human approval
Praxis asks because Jira writes are easy to duplicate and hard to undo.
Quality operations below require configured private access.
Read vs preview vs write
| Kind | Examples | Confirmation |
|---|---|---|
| READ | praxis_doctor, praxis_*_status, praxis_jira_epic | none |
| PREVIEW | praxis_ba_preview, praxis_architect_preview, recovery preview | none — must not write |
| LOCAL EXECUTION | praxis_quality_ensure, praxis_quality_review | starts a service or executes tests and persists evidence; no Jira apply |
| APPLY | praxis_ba_apply, praxis_architect_apply, praxis_developer_claim, praxis_developer_complete, praxis_quality_apply | confirmation=YES and, where required, previewFingerprint |
Saying “yes, do it” in chat does not satisfy the Runtime contract. The Skill must call the apply tool with confirmation=YES and the fingerprint from that preview.
What YES means
You accept exactly the previewed Jira creates/updates/transitions. Reject by not calling apply. If Jira changed before this Apply, generate a new preview. If Apply was partial, retry the same fingerprint — do not generate a new preview just to “try again”.
Examples
BA apply: “I confirm BA apply only for the shown preview and the matching fingerprint.”
Architect apply: “I confirm Architect apply only for the shown WP and fingerprint.”
Developer claim: “I confirm claim only for WP-20260914-002 and the shown START_DEVELOPMENT.”
Developer complete: “I confirm complete and the Quality handoff. Do not start Quality and do not move Jira to Done.”
Quality apply: “I confirm only the shown Quality apply.” That approval is the listed issue, properties (including bookkeeping keys), managed comment, the numeric transition id, local manifest, and Quality SQLite update — not “any Done transition”.
Each role transition is a separate approval. Completing Developer does not authorize Quality review.
How to inspect proposed writes: read the preview JSON (issue types, summaries, transition names/ids). How to avoid duplicates: trust idempotent apply; do not re-run apply with a different fingerprint “just in case”.