Obey rules

Show all active rules. Use when the user says "/rules", "show rules", "list rules", "what are my rules", or wants to see their current persistent instructions.

install
source · Clone the upstream repo
git clone https://github.com/Lexxes-Projects/obey
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/Lexxes-Projects/obey "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/rules" ~/.claude/skills/lexxes-projects-obey-rules && rm -rf "$T"
manifest: skills/rules/SKILL.md
source content

/rules — Show Active Rules

Show the user their active rules.

Process

Run the list script:

bash ${CLAUDE_PLUGIN_ROOT}/scripts/rules-list.sh --filter "all"

If

$ARGUMENTS
contains
--global
,
--local
,
--project
, or
--stack
, pass that as the filter instead of "all".

Format the Output

Present the rules as a clean, organized list grouped by scope:

# Active Rules

## Global (apply to all projects)
  1. [ID] [hook+instruction] Never push to main
     → Blocks: git push.*main
  2. [ID] [instruction] Always explain reasoning before writing code

## Stack: rust (apply to all Rust projects)
  3. [ID] [hook+instruction] Never use .unwrap() in production
     → Blocks: \.unwrap\(\)

## Project (this project only)
  4. [ID] [instruction] Use the repository pattern for data access

Detected stack: rust
Total: 4 rules (2 hook-enforced, 2 instruction-only)

For each rule show:

  • The rule ID (for use with
    /forget
    )
  • Enforcement type in brackets
  • Rule text
  • If hook-enforced: the pattern that triggers blocking (with →)

Also show the detected stack and totals.

If there are no rules, tell the user: "No rules set. Use

/remember <rule>
to add one."