Skip to content

refactor(openapi): document.ts を領域別 module に分割し出力 JSON を byte 単位で固定 (R9c) - #620

Merged
cipherwebllc merged 1 commit into
mainfrom
fix/r6-r9c-openapi-split
Sep 24, 2026
Merged

cipherwebllc merged 1 commit into
mainfrom
fix/r6-r9c-openapi-split

Conversation

@cipherwebllc

Copy link
Copy Markdown
Owner

概要

第 6 回レビュー Phase 6 (完全リファクタ) の R9c です (指摘 E16・F14)。出力を変えない分割だけです。
1,839 行の lib/openapi/document.ts を、119 行の facade (buildOpenApiDocument は不変・同じ export と path) と 11 の module に分けます。

module 中身
payment.ts・schema.ts 支払い情報と schema の共有 helper
components.ts 共有の schema と応答
license.ts・discovery.ts・vanilla.ts・activity.ts・monitor.ts・stores.ts・shops.ts・directory.ts 領域ごとの path 定義
  • 40 個の宣言は byte 単位で同一です (原本の行範囲を script で写しました)。追加は export と 2 か所のコメント移動だけです。
  • どの module も document.ts を import せず、循環はありません。helper は読み込み時に何もしません。
  • Monitor の 6 つの説明は文言が違うので、1 つにまとめていません。
  • path の順序を保つため、JPYC の /api/paid/stores は discovery.ts に残しました。
  • docs/DEPLOY_CHECKLIST.md の参照先を新しい file に直しました。

/openapi.json は AI エージェントが読む公開の契約です。出力の JSON は 14 通りの設定で sha256 が分割前と同一で、レビュー役も独立に 6 通りを byte 比較しています。

固定と検証 (base = main)

  • golden test (17 件): 14 通りの設定 (全機能 ON・Arc・mainnet・Avalanche/Ethereum・手数料変更・価格の既定と不正・各機能単独 等) の sha256、両 endpoint と builder の byte 一致、全 OFF の 404、33 path と 15 schema の key 順。hash は旧コードで取得し、分割後も値を変えずに通ります。
  • flag や env を import 後に切り替える case を 2 つ入れ、import 時と生成時の評価の区別が変わっていないことを固定しました (レビュー指摘で facilitator の flag の case を追加)。
  • 別セッションの Opus 5.5 のレビュー: approve-with-fixes → 修正済み。path の入れ替え・説明の 1 語の変更・読み取り時点の移動は golden が検出します。
  • typecheck 0 / eslint 0 / full vitest 14,552 pass

既存の不整合 (本 PR では変えない・B-R9d・公開文書なので承認後に)

  • PaymentRequired の example は x402Version: 1 ですが、header の説明は v2 です。
  • StorageUnavailable の説明が "shop snapshot" ですが、shop 以外の route も参照しています。
  • JPYC Monitor の 2 route だけ 402 を inline で書いています。

🤖 Generated with Claude Code

https://claude.ai/code/session_01HeizmagJBgL5peL5mQpxkc

@vercel

vercel Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
openpay Ignored Ignored Preview Sep 24, 2026 1:37pm UTC

Request Review

…R9c)

第 6 回レビュー Phase 6 の R9c (E16・F14)。1,839 行の lib/openapi/document.ts を 119 行の
facade (buildOpenApiDocument は不変) と payment/schema/components/license/discovery/
vanilla/activity/monitor/stores/shops/directory の 11 module に分ける。40 個の宣言は
byte 単位で同一 (原本の行範囲を script で写した)。出力 JSON は 14 通りの設定で
sha256 が分割前と同一。flag/env を import 後に切り替える case で、import 時と生成時の
評価の区別が変わっていないことも固定した。

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HeizmagJBgL5peL5mQpxkc
@cipherwebllc
cipherwebllc force-pushed the fix/r6-r9c-openapi-split branch from 576b743 to 6146c39 Compare September 24, 2026 13:37
@cipherwebllc
cipherwebllc merged commit 1c70b84 into main Sep 24, 2026
8 checks passed
@cipherwebllc
cipherwebllc deleted the fix/r6-r9c-openapi-split branch September 24, 2026 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant