Install
$ agentstack add skill-diversioteam-agent-skills-marketplace-bruno-api ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo 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.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
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 →About
Bruno API Documentation Generator Skill
Inputs & Modes
This Skill expects one of:
- A path to a single Bruno file (usually
*.bru), OR --scanto analyze all.brufiles 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
.brufile(s) to analyze. - Whether they want
--dry-runor 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 withfile.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.pymodules for the path prefix. - If needed,
Grepfor 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
.brufiles recursively under that directory. - Generate one markdown doc per file.
- If no
--outputis provided, return docs in the response (grouped by file). - If
--outputis 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.
- Author: DiversioTeam
- Source: DiversioTeam/agent-skills-marketplace
- License: MIT
- Homepage: https://engineering.diversio.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.