From osprey-rules
Use when gathering requirements for a new Osprey SML rule before any code is written. Not triggered on general coding tasks — only when planning what a rule should detect, which labels to apply, and what signals to use.
How this skill is triggered — by the user, by Claude, or both
Slash command
/osprey-rules:planning-osprey-rulesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This workflow guides you through gathering requirements and producing a structured
This workflow guides you through gathering requirements and producing a structured rule specification before any SML code is written.
The orchestrator provides you with context before you begin. Verify you have everything you need.
Required inputs (provided by orchestrator in your prompt):
osprey-rule-investigator
containing project structure, labels table, model catalogue, UDF signatures,
and execution graph map.Validate the investigator report contains:
If the investigator report is missing or incomplete: Report what's missing and ask the orchestrator to re-dispatch the investigator. Do NOT proceed without project context.
Before writing any code, understand what the user wants to detect.
Ask clarifying questions:
config/labels.yaml)Map to labeling patterns:
osprey-sml-reference skill to look up common labeling patterns if you
need naming conventions or syntax examples.Example user request:
"I want to detect posts that contain profanity and label them with 'contains-profanity'."
Analysis:
After gathering requirements, produce a structured plain-text specification that the implementation agent can use to write SML.
Rule specification format:
## Rule Specification: [Rule Name]
**Target behaviour:** [What the rule detects]
**Event type:** [Which AT Protocol event triggers the rule]
**Signals:** [What data points the rule examines]
**Models needed:** [ML models or UDFs required, referencing available ones from investigator report]
**Labels to apply:** [Which labels from config/labels.yaml to use]
**Target entity:** [What gets labeled — account, record, etc.]
**Effect type:** [LabelAdd, AtprotoLabel, DeclareVerdict, etc.]
**Expiration:** [Duration if applicable, using named constants: Day, Hour, Week]
**Guard conditions:** [Re-labeling prevention if needed]
**Detection logic (plain English):**
[Step-by-step description of what conditions trigger the rule]
**Examples:**
- Should catch: [content examples]
- Should NOT catch: [counter-examples]
**Edge cases:**
- [Boundary conditions discussed with the user]
Confirm with user: Present the specification and get explicit confirmation before handing off to the implementation agent.
Load additional skills when you need specialized guidance during planning.
When to chain to osprey-sml-reference:
Load with: Skill(skill='osprey-sml-reference')
These are planning-phase mistakes that lead to problems downstream.
Hardcoding label names not in config/labels.yaml
config/labels.yaml using the investigator report firstNot asking about the target entity
Skipping UDF availability check
| Rationalization | Reality | Action |
|---|---|---|
| "This label probably exists" | No. Labels must be explicitly configured. | Check the investigator report's labels table and confirm the label exists before including it in the spec. |
| "I know the type system" | No. SML type rules are strict. | Load osprey-sml-reference if uncertain about EntityJson vs JsonData. |
| "The investigator report looks fine" | No. Incomplete context causes downstream failures. | Validate every required section of the investigator report before proceeding. |
| "I'll figure out the entity type later" | No. Entity type determines model structure. | Ask the user what gets labeled (account, record, both) during requirements gathering. |
| "The user knows what they want" | Requirements need refinement. | Always ask clarifying questions even if the request seems clear. |
Output: A confirmed rule specification in plain text. Hand this to the
orchestrator, which passes it to osprey-rule-impl with the investigator report.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub skywatch-bsky/claude-skills --plugin osprey-rules