AGENT SKILL

business-logic-abuse-review

Derives abuse cases from module docs and checks them against tests and runtime evidence. Use when docs describe stateful workflows, approvals, payments, exports, retries, invites or any action abusable without breaking auth.

License 许可
MIT
所属仓库
Eliyce/paqad-ai
最近更新
2026-11-13
Stars
★ 8
Forks
0

01 前言 Front Matter

name
business-logic-abuse-review
metadata
{ "cacheable": "false", "model_tier": "reasoning", "paqad-meta": "skill.meta.yaml", "output_format": "markdown" }
description
Derives abuse cases from module docs and checks them against tests and runtime evidence. Use when docs describe stateful workflows, approvals, payments, exports, retries, invites or any action abusable without breaking auth.

02 资源文件 7

03 SKILL.md 正文

What It Does

Turns business workflow descriptions into concrete abuse hypotheses so pentest reports can cover replay, bypass, approval skipping, and invalid transitions with project context.

Use This When

When module docs describe stateful workflows, approvals, payments, exports, retries, invites, or any action that can be abused without breaking auth.

Inputs

  • Read the workflow and state-related module docs first.
  • Read references/abuse-cases.md before selecting hypotheses.
  • Read tests and runtime artifacts that could confirm or refute those hypotheses.

Procedure

  1. Run scripts/find-workflow-docs.sh to enumerate candidate workflow/state docs.
  2. Extract state changes, approvals, and high-value actions from those docs.
  3. For each, pick an abuse-case tag from assets/abuse-case-categories.txt (replay, double-submit, invalid-transition, bypass-approval, race, rollback-skip, overspend).
  4. Confirm whether tests or runtime evidence cover that abuse path; record the exact missing proof.
  5. Format per assets/output.template.md and validate with scripts/lint-findings.sh.

Output Contract

  • Match assets/output.template.md: ## Findings, ### {{module}}: {{abuse-case-tag}}, with Module:, Step:, Abuse case:, Missing proof:, Reproduction: segments.
  • Output must pass scripts/lint-findings.sh (exit 0).
  • Reproduction steps must be concrete enough for a manual retest.

Escalate / Stop Conditions

  • Ask when the workflow is clearly high-value but the module docs do not describe its state transitions.
  • Warn when the docs suggest irreversible or financial actions without matching abuse-focused test evidence.
  • Do not present a generic “business logic risk” without naming the exact abuse case.

Resources

  • references/abuse-cases.md
  • scripts/find-workflow-docs.sh
  • scripts/lint-findings.sh
  • assets/output.template.md
  • assets/abuse-case-categories.txt
  • agents/openai.yaml

04 同仓库更多 Skills

Eliyce
Eliyce/paqad-ai

sample-skill

Sample bundled skill fixture

★ 8
Eliyce
Eliyce/paqad-ai

processing-invoices

Turns a supplier invoice into one ledger line. Use when a supplier invoice arrives and needs booking.

★ 8
Eliyce
Eliyce/paqad-ai

processing-invoices

Turns a supplier invoice into one ledger line. Use when a supplier invoice arrives and needs booking.

★ 8
Eliyce
Eliyce/paqad-ai

understand-idea

Chat and Claude Code: Step 1 of the discover journey: clarifies the goal, who benefits, success and constraints into the idea block. Use when the journey directs it to step 1, not directly.

★ 8
Eliyce
Eliyce/paqad-ai

size-work

Chat and Claude Code: Suggest a size for a ticket from comparable finished work, as a labelled suggestion the team still owns. Use it when someone asks "how big is this?", "roughly how much work is ABC-12?", or wants a backlog item sized. It finds the team's sizing scale at first use, picks two to five of the closest finished tickets with links, and gives a size or range with the drivers behind it and a confidence of low, medium or high, lowered and explained when the area's documents are template text. Every result is labelled a suggested size, never a date or a commitment. It writes nothing into the size field unless the user says "set it", and it refuses to overwrite an existing size unless the user asks to replace it. Produces the sizing block of the record.

★ 8
Eliyce
Eliyce/paqad-ai

refine-ticket

Chat and Claude Code: Improve one or more existing tracker tickets without losing the author's intent. Use it when someone wants a ticket read, diagnosed and tidied up ("this ticket is vague", "fix up ABC-12", "split this, it's too big"). It reads each ticket in full and snapshots it with its last-updated time, says what is wrong with evidence, and proposes a field-by-field before and after change set limited to summary, description, labels, parent, links and new child tickets on a split. It writes nothing until an explicit "apply it" bound to that exact change set, re-checks the ticket for conflicting edits just before writing, never replaces rich descriptions with plain text, never deletes or closes a ticket, and reads each ticket back after applying. Produces the existing and changes blocks of the record.

★ 8