auditing-actions

Record mutating action audit trails in the audit_log or local jsonl.

2|Updated Apr 24, 2026
One-click install
npx skills add https://github.com/PanQiWei/board-superpowers --skill auditing-actions
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: auditing-actions
Source: https://github.com/PanQiWei/board-superpowers/tree/main/skills/auditing-actions
Command: npx skills add https://github.com/PanQiWei/board-superpowers --skill auditing-actions

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Use right after board-superpowers:classifying-actions returns a decision, every time a board-superpowers skill is recording what it is about to do or what it just did. For actions that proceed automatically, apply once after the action lands. For actions that wait for architect approval, apply once when first proposing the action and again after the architect approves or declines. Apply even when the action seems too small to log — every mutating action gets a row, no exceptions. Do NOT use for read-only actions; reads are not audited. Do NOT invoke to determine the A/R/N decision — that is board-superpowers:classifying-actions.

Core Features & Use Cases

This skill is the audit-row writing authority. Every mutating action the plugin performs leaves a trail of one or two rows in the audit log, recording what was decided, who approved (if anyone), and what happened when the action ran.

Flow at a glance

Caller["Caller: A or R decision + payload"] --> C{"Decision class"} C -- A --> A1["1 row\napproval-stage=auto"] C -- R --> R1["Row 1: propose\napproval-stage=propose"] R1 --> Wait["Surface to architect"] Wait -- approve --> R2A["Row 2: approved\nact then audit result"] Wait -- decline --> R2D["Row 2: rejected\naudit decline; abort"] A1 --> W["audit-log-write.sh"] W --> DBOk(["Row in audit_log table"]) W --> JSONL["Degrade to jsonl\nwith mode field\nidentifying cause"] JSONL --> JE(["Row in audit-local.jsonl"])

How to apply this skill

The caller has just received an A/R decision from board-superpowers:classifying-actions. Now the caller invokes scripts/audit-log-write.sh (located inside the board-superpowers plugin) once for A-class actions or twice for R-class actions, with structured args. Examples below assume the caller has resolved the plugin root path; scripts/lib/common.sh ships a bsp_plugin_root helper that does this cross-platform.

For A-class actions:

  • The script writes an audit row with approval-stage auto and outcomes reflecting success or failure of the action.

For R-class actions:

  • Step 1: propose entry (before architect ack)
  • Step 2: resolve entry (after architect approves OR declines)
  • In both steps, the payload contains the per-action_id details and is written to the audit log or degraded to jsonl if the DB is unavailable.

Quick Start Log an audit entry for a new mutating action by invoking the audit-log-write.sh script with the required arguments.

Frequently Asked Questions about auditing-actions

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I record an audit trail for mutating actions in board-superpowers?

Recording an audit trail for mutating actions in board-superpowers requires invoking the audit-log-write.sh script with structured arguments after an action is classified, ensuring every execution or approval stage is logged.

What is the difference between logging A-class and R-class actions in an audit log?

Logging A-class actions writes a single auto approval-stage row after execution, whereas R-class actions require a two-entry sequence: one propose row before architect review and one resolve row after approval or decline.

How does audit logging work when the database is unavailable?

When the database is unavailable, audit logging degrades to writing records into a local audit-local.jsonl file, utilizing a mode field within the payload to identify the specific cause of the database degradation.

Do I need to log read-only actions to the board-superpowers audit log?

Read-only actions do not need to be logged to the board-superpowers audit log; this skill strictly records mutating actions, capturing every change without exception regardless of how small the action seems.

When should I write the propose entry for an R-class mutating action?

You should write the propose entry for an R-class mutating action immediately when first proposing the action to the architect, before waiting for their approval or decline decision to capture the initial intent.

Can I use this skill to determine if an action should be approved or rejected?

You cannot use this skill to determine if an action should be approved or rejected; it strictly records the audit trail after the board-superpowers:classifying-actions skill has already returned the A or R decision.