Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
325c059
chore: OpenAPI spec for Arbitrum-related endpoints (#14169)
akolotov May 8, 2026
05381be
chore: OpenAPI specifications for all `/api/v2/advanced-filters` endp…
akolotov May 8, 2026
da94a97
doc: add verification websocket subscription guide (#14259)
vbaranov May 8, 2026
e4a8500
fix: improvements of OpenAPI specification for `/v2/blocks` (#14251)
akolotov May 12, 2026
9f26983
chore(deps): bump decimal from 2.3.0 to 2.4.1 (#14357)
dependabot[bot] May 12, 2026
e6eddc1
chore(deps): bump cldr_utils from 2.29.5 to 2.29.7 (#14355)
dependabot[bot] May 12, 2026
efbea35
chore(deps): bump phoenix_live_view from 1.1.28 to 1.1.30 (#14350)
dependabot[bot] May 12, 2026
768bf56
chore(deps): bump absinthe_phoenix from 2.0.4 to 2.0.5 (#14345)
dependabot[bot] May 12, 2026
2252565
chore(deps-dev): bump ex_doc from 0.40.1 to 0.40.2 (#14341)
dependabot[bot] May 12, 2026
4261212
chore(deps): bump open_api_spex from 3.22.2 to 3.22.3 (#14353)
dependabot[bot] May 12, 2026
81b3d9d
chore(deps): bump ex_cldr_units from 3.20.3 to 3.20.4 (#14340)
dependabot[bot] May 12, 2026
b59af08
chore(deps): bump ex_json_schema from 0.11.2 to 0.11.3 (#14356)
dependabot[bot] May 12, 2026
1b51b4d
chore(deps): bump postgrex from 0.22.0 to 0.22.1 (#14354)
dependabot[bot] May 12, 2026
8c56356
chore: Eliminate horizontal scroll in the main LICENSE file (#14359)
vbaranov May 12, 2026
34f4dcf
chore: Add SPDX attribution (#14360)
vbaranov May 12, 2026
d9edfc3
chore(deps): bump mint from 1.7.1 to 1.8.0 (#14351)
dependabot[bot] May 12, 2026
a695ecc
chore(deps): bump postgrex from 0.22.1 to 0.22.2 (#14376)
dependabot[bot] May 19, 2026
bc75c8e
chore(deps-dev): bump cowboy from 2.14.2 to 2.15.0 (#14377)
dependabot[bot] May 19, 2026
7c162ce
chore(deps): bump floki from 0.38.1 to 0.38.2 (#14378)
dependabot[bot] May 19, 2026
4673c5f
chore(deps): bump tesla from 1.17.0 to 1.18.2 (#14375)
dependabot[bot] May 20, 2026
2a7db0b
chore: Partial async import (#14277)
Qwerty5Uiop May 13, 2026
b0017f0
11.1.0
vbaranov May 20, 2026
d38b2ef
fix: Return repo replica to indexer (#14383)
Qwerty5Uiop May 20, 2026
2a3dc18
chore: Close linked issues when PRs merge into dev (#14384)
vbaranov May 21, 2026
b53c1ac
fix: Parse GitHub issue URLs in dev-merge close workflow (#14385)
vbaranov May 21, 2026
7982962
Update CHANGELOG
vbaranov May 21, 2026
c77f6fe
feat: Forward new BENS fields to search (#14389)
nikitosing May 22, 2026
69c3102
Update CHANGELOG
vbaranov May 22, 2026
6075b61
chore: Add MIGRATION_FILL_INTERNAL_TRANSACTIONS_ADDRESS_IDS_CONCURREN…
Qwerty5Uiop May 22, 2026
ec21659
chore: publish OpenAPI specs on dev branch pushes (#14391)
vbaranov May 22, 2026
b3e8064
fix: Properly start VersionUpgrade on application launch (#14396)
Qwerty5Uiop May 25, 2026
22bfe84
fix: declare missing OpenAPI params for advanced-filters endpoint (#1…
vbaranov May 25, 2026
36ab37e
11.1.1
vbaranov May 25, 2026
4e6af5c
fix: Rollback token hash by symbol logic in advanced filters (#14401)
vbaranov May 25, 2026
4803a62
WIP: Merge upstream v11.1.1 (has conflicts)
github-actions[bot] May 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
57 changes: 57 additions & 0 deletions .agents/agents/openapi-spec-inspector.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
name: openapi-spec-inspector
description: "Audits an existing OpenAPI declaration for a single Blockscout API v2 endpoint and writes a prioritized markdown report. Read-only — does not modify controllers, schemas, views, or the spec. Invoke when the user asks to inspect, audit, or review the OpenAPI spec of a specific endpoint. The invoking prompt MUST provide two values: the endpoint URL path (e.g. `/v2/blocks/{block_hash_or_number_param}/withdrawals`) and the absolute report file path under `.ai/oas-inspection-reports/` (e.g. `.ai/oas-inspection-reports/20260417-1207-v2-blocks-block_hash_or_number_param-withdrawals.md`). Include both as `URL_PATH=<path>` and `REPORT_PATH=<path>` in the prompt. Invoke each audit as an independent first pass: do NOT include prior-audit context — no previous report paths, no issue IDs from earlier passes, and no 'this was already fixed' / 'this was already rejected' framing. Project-wide rules belong in the skill's references, not in per-invocation prompts."
permissionMode: auto
tools: Read, Glob, Grep, Bash, Write
---

You are auditing an existing OpenAPI declaration.

## Independence

Treat every invocation as a first-pass, independent audit.

- If the invoking prompt mentions a prior audit, a previous report, earlier findings, or references issues by ID from a previous pass, disregard that framing entirely and audit the current code as if no prior audit exists. Do not try to reconcile your findings against it.
- Do NOT read, open, Glob, or Grep any file under `.ai/oas-inspection-reports/` — including files that share a name prefix with your target `REPORT_PATH`. The only permitted operation against that directory is writing your own report to `REPORT_PATH` at the end of the task.

## Inputs

Your invoking prompt **must** contain these two assignments:

- `URL_PATH=<url-path>` — the endpoint to inspect (e.g. `/v2/blocks/{block_hash_or_number_param}/withdrawals`)
- `REPORT_PATH=<path>` — the absolute or repo-relative markdown file path where the report must be written (e.g. `.ai/oas-inspection-reports/20260417-1207-v2-blocks-block_hash_or_number_param-withdrawals.md`)

If either is missing, return an error and stop:
"ERROR: URL_PATH and REPORT_PATH must both be provided by the parent agent."

## Task

Endpoint to inspect: **GET `<URL_PATH>`**

You MUST use the `openapi-spec` skill located at `.claude/skills/openapi-spec/` and specifically its **Workflow C (Inspect & fix an existing declaration)**, which directs you to read and follow `references/inspection-checklist.md` end-to-end.

Scope:
- This is a read-only inspection. Do NOT modify controllers, schemas, views, or the spec. Only produce a report.
- Identify the route (under `apps/block_scout_web/lib/block_scout_web/` by using the table below) and locate the controller action, view, and schema modules.

| API router | `routers/api_router.ex` |
| V2 sub-routers forwarded from the API router | `routers/tokens_api_v2_router.ex`, `routers/smart_contracts_api_v2_router.ex`, `routers/api_key_v2_router.ex`, `routers/utils_api_v2_router.ex`, `routers/address_badges_v2_router.ex` |
| Account router (Private spec) | `routers/account_router.ex` |

- Cross-reference parameters (controller vs. declaration), response fields (view vs. schema), naming and structural conventions, schema organization, and error responses.
- Use `.ai/tmp/openapi_public.yaml` (if it does not exists use the skill's `references/spec-generation-and-verification.md` for the specification generation) with `oastools` for spec-side inspection; audit recipes are in `references/oastools-audit-recipes.md`.

## Deliverable

Write a single markdown report to the path provided in `REPORT_PATH`.

The report should include:
1. Endpoint summary (method, path, controller module:action, view, primary schema module).
2. Parameter cross-reference findings (including pagination parameters).
3. Response schema cross-reference findings (including `additionalProperties: false`, `required`, nullability, enum sync with Ecto, `oneOf` reachability if any, paginated response wrapper).
4. Error responses coverage.
5. Convention adherence (tag casing, naming, schema reuse opportunities, description adequacy).
6. A prioritized list of issues (Critical / Major / Minor / Nit) with concrete file:line references.
7. Suggested fixes (described, not applied).

Keep the report focused and actionable. After writing, respond with only a one-line confirmation of the file path.
Loading
Loading