AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Bruno Api

skill-diversioteam-agent-skills-marketplace-bruno-api · by DiversioTeam

Generate comprehensive API docs from Bruno (.bru) files by mapping requests to a Django implementation (DRF/Django Ninja), including auth, multi-tenant filtering, schemas, and code references.

No reviews yet
0 installs
33 views
0.0% view→install

Install

$ agentstack add skill-diversioteam-agent-skills-marketplace-bruno-api

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-diversioteam-agent-skills-marketplace-bruno-api)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
2mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Bruno Api? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Bruno API Documentation Generator Skill

Inputs & Modes

This Skill expects one of:

  • A path to a single Bruno file (usually *.bru), OR
  • --scan to analyze all .bru files under a directory.

Optional flags:

  • --dry-run – produce an analysis plan only (no deep codebase search).
  • --output – write the generated markdown documentation to a file.

If inputs are missing or ambiguous, ask the user to confirm:

  • Which .bru file(s) to analyze.
  • Whether they want --dry-run or full documentation.
  • Whether an output file should be written.

Output Shape & Severity Tags

Dry-run output

Return a short plan containing:

  • Endpoint summary: method, URL, auth, and any detected params/body.
  • Where you will look in the Django codebase (specific file paths/directories).
  • Which documentation sections will be generated.
  • Complexity notes (e.g., “DRF ViewSet + serializer” vs “Ninja router + schema”).

Full documentation output

Generate a single markdown document for each endpoint using this structure:

  • #
  • ` `
  • Authentication, Permissions, Multi-tenant
  • ## Overview
  • ## Request (headers + params/body with types/validation)
  • ## Response (success example + common error cases)
  • ## Implementation Details (URL config + view + serializer/schema; always with file.py:line)
  • ## Business Logic (step-by-step, include side effects like tasks/external calls)
  • ## Frontend Integration (TypeScript types + call example + React Query hook example)
  • ## Testing (Bruno tests + edge cases + required fixtures/data)
  • ## Notes (perf considerations, related endpoints, rollout notes)

Use severity tags only when something prevents correctness/completeness:

  • [BLOCKING] – cannot locate the endpoint implementation or critical auth/permission logic.
  • [SHOULD_FIX] – documentation gaps due to missing/incomplete source details (e.g., response shape unclear).
  • [NOTE] – optional improvements, related endpoints, refactors, or performance observations.

Workflow

Step 1 — Parse the Bruno file(s)

For each .bru file:

  • Extract:
  • HTTP method
  • URL / path pattern
  • Headers
  • Query parameters
  • Path parameters (from the URL pattern)
  • Request body (and infer a schema where possible)
  • Detect authentication intent:
  • JWT / token headers
  • Session/cookie usage
  • Explicit “no auth” signals
  • Capture any Bruno test/assert blocks as testing hints.

Step 2 — Locate the Django route & implementation

Treat these repo conventions as first-class when present:

  • If the URL starts with /api/v2/:
  • Check dashboardapp/v2_urls.py.
  • Check dashboardapp/views/v2/ for the view/viewset.
  • If the URL starts with /api/v2/pulse/:
  • Check pulse_iq/api/ for Django Ninja routers/endpoints.
  • Otherwise:
  • Search app-level urls.py modules for the path prefix.
  • If needed, Grep for a distinctive path segment from the Bruno URL.

Once the route is found, identify the implementation type:

  • DRF
  • View / ViewSet class and handler method (list, retrieve, create, custom actions).
  • Serializer(s) used (including nested serializers) and validation rules.
  • Permissions / authentication classes.
  • Queryset and filtering (especially company/org scoping).
  • Ninja
  • Router and endpoint function.
  • Pydantic schema(s) and validation.
  • Auth configuration/decorators.
  • Multi-tenant scoping and access control.

Always record code references with line numbers (path/to/file.py:123).

Step 3 — Extract behavior and contracts

For the located endpoint:

  • Summarize the business purpose and any key invariants.
  • Document validation and error behavior:
  • Common 400 reasons (schema/serializer validation).
  • Auth failures (401) and permission failures (403).
  • Not-found cases (404) and domain-specific error cases.
  • Identify multi-tenant constraints:
  • How company/org is inferred (JWT claims, request context, URL param).
  • Which queryset filters enforce scoping.
  • Note side effects:
  • Background tasks (Celery), emails, webhooks, external service calls.
  • Writes to critical models and any transactional boundaries.

Step 4 — Generate documentation

Write the markdown doc per “Full documentation output”.

Rules:

  • Prefer precise types over “string/number” when you can infer them.
  • Include at least one realistic example request and success response.
  • If response shape is dynamic or large, document the stable contract and

include a representative sample, not the entire universe of fields.

  • If you recommend follow-up code changes, mention the repo's active type gate

(ty first when configured, else pyright, else mypy) and avoid recommending blanket suppressions.

  • When you’re unsure, be explicit about assumptions and mark with [SHOULD_FIX].

Step 5 — Handle --output and --scan

  • If --scan :
  • Find all .bru files recursively under that directory.
  • Generate one markdown doc per file.
  • If no --output is provided, return docs in the response (grouped by file).
  • If --output is provided:
  • Write output to that path.
  • If scanning multiple files, either:
  • Write a single combined doc (with a clear table of contents), OR
  • Write multiple files under an output directory (ask the user which they want).

Compatibility Notes

This Skill is designed to work with both Claude Code and OpenAI Codex.

  • Claude Code: install the corresponding plugin and use its slash commands (see plugins/bruno-api/commands/).
  • Codex: install the Skill directory and invoke name: bruno-api.

For installation, see this repo's README.md.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.