-
Notifications
You must be signed in to change notification settings - Fork 0
Docs: decisions.md を per-file ADR 群へ移行(Phase 0-5 完了) #508
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
31 commits
Select commit
Hold shift + click to select a range
3272772
Docs: スケジュールジョブ並走制御の非対象方針を追記
Tomy-ch cc5185f
Docs: ADR 移行の作業計画書を追加
Tomy-ch e0cd75b
Docs: ADR 移行計画を細粒度版に改訂
Tomy-ch e667a24
Docs: ADR 計画に env-gated DI を追加し CQRS を補記
Tomy-ch a6dde63
Docs: ADR 計画に運営・ツールチェーン・メタ層を追補
Tomy-ch ea0f837
Docs: ADR 計画に未スキャン領域スイープ(3rd pass)を追補
Tomy-ch 25287e4
Docs: ADR 計画の保留候補8件を昇格(0085-0092)
Tomy-ch e439ace
Docs: ADR 計画を依存・基礎度順に再採番
Tomy-ch e894af7
Docs: ADR スケルトンフレーム(Phase 0)を作成
Tomy-ch d9d8955
Docs: ADR テンプレに deciders 追加・Consequences を MADR 標準化・onion 見本追加
Tomy-ch 3646010
Docs: 除外(負の)ADR をセットアップ時の上書きポイントにする方針を追記
Tomy-ch 3ab2c8c
Docs: セットアップ手順に exclusion ADR レビュー工程(Phase 10)を追加
Tomy-ch 6a31771
Docs: セットアップ時の exclusion ADR は直接編集に修正
Tomy-ch 35690eb
Docs: ADR 群を per-file 化(Phase 1-4・92本+メタ)
Tomy-ch 007cf02
Docs: 依存インベントリを reference/dependencies.md へ分離
Tomy-ch 5a84873
Docs: decisions.md をリダイレクト化し正典参照を ADR へ貼替
Tomy-ch 47aec4b
Docs: ADR 移行計画書に進捗ステータス(Phase 0-4 完了)を追記
Tomy-ch f3b5568
Docs: ADR を docs/adr/ へ昇格し相対リンク・内部参照を整理
Tomy-ch 9f5827b
Docs: EN 正典参照を docs/adr/ へ更新し rules.md に ADR backlink を追加
Tomy-ch d7b2e10
Docs: ADR の日本語ミラー(93本+README/template)を追加
Tomy-ch a3310fd
Docs: ja 正典参照を ADR 群へ貼替え ja 依存目録を追加
Tomy-ch 1c5ff2c
Chore: doc-reviewer の decisions.md 参照を docs/adr/ へ更新
Tomy-ch 7d75b46
Docs: AGENTS.md の技術選定根拠参照を docs/adr/ へ更新
Tomy-ch f9d04c3
Docs: setup-repository.ja.md の Phase 9 を EN 正典へ同期
Tomy-ch 12b7055
Docs: 敵対的レビューで検出した ADR の事実誤りを修正(EN+ja)
Tomy-ch 9cf341e
Docs: PR レビューの設計意図コメントを ADR へ反映(EN+ja)
Tomy-ch 0c1cd63
Refactor: system_query を system_cqrs へ改名し CQRS ADR を整備
Tomy-ch cd02864
Docs: PR レビュー指摘の反映(0000/0002/0013)+秘密情報除去
Tomy-ch 1e6e60d
Docs: ADR を再ナンバリングし新規2本追加・全文検索ADRを削除
Tomy-ch 5049383
Docs: ADR を docs-viewer に参照セクションとして表示
Tomy-ch 9aa26b2
Docs: manifest.yaml の ADR subgroup 説明コメントを削除
Tomy-ch File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,51 @@ | ||
| --- | ||
| name: adr-scan | ||
| description: PROVISIONAL / one-off. Full-repository scan that discovers ADR-worthy architectural decisions across the whole repo (not just docs/decisions.md) so decisions.md can be migrated to a formal docs/adr/ set. Fans out read-only discovery over four surfaces — canonical docs (decisions/architecture/rules), subsystem design docs (docs/design/**), deliberate-exclusion docs (docs/project/**, out-of-scope), and latent decisions (per-package READMEs + code "why" comments) — classifying each candidate as decision (ADR-worthy) / rule (stays in rules.md) / inventory (stays in a living reference) / exclusion (ADR-worthy negative decision). Read-only: produces a candidate ADR inventory only, writes no docs/adr files. Delete after the migration format is locked. | ||
| --- | ||
|
|
||
| # adr-scan (provisional) | ||
|
|
||
| **Status: temporary.** Built to drive the one-off `decisions.md` → `docs/adr/` migration | ||
| survey. Remove once the ADR skeleton/numbering is agreed. Read-only — never writes | ||
| `docs/adr/**` or edits source; it only emits a candidate inventory. | ||
|
|
||
| ## Purpose | ||
|
|
||
| `docs/decisions.md` holds 8 explicit decisions, but architectural decisions are also | ||
| scattered across design docs, rules, deliberate exclusions, and code comments. Before | ||
| migrating to a formal per-file ADR set, discover the full ADR-worthy surface so the | ||
| numbering and split are done once. | ||
|
|
||
| ## Classification taxonomy (the core judgment) | ||
|
|
||
| Each candidate is exactly one of: | ||
|
|
||
| - **decision** — a choice among alternatives with lasting consequences (X over Y). ADR-worthy. | ||
| - **exclusion** — a deliberate "we intentionally do NOT do X" with rationale. ADR-worthy (negative decision). | ||
| - **rule** — a consequence/constraint enforced day-to-day (layer deps, DTO boundary). Stays in `docs/rules.md`; may *reference* an ADR but is not itself one. | ||
| - **inventory** — a catalog that drifts with code (dependency table). Stays in a living reference doc, never an ADR. | ||
|
|
||
| A candidate is ADR-worthy only if: it has (or implies) considered alternatives, it is | ||
| cross-cutting or hard to reverse, and it is not merely restating a rule/inventory. | ||
|
|
||
| ## Scan surfaces (fan out one worker each) | ||
|
|
||
| 1. **Canonical** — `docs/decisions.md`, `docs/architecture.md`, `docs/rules.md`. Extract explicit decisions + rule-encoded decisions; separate decision vs rule. | ||
| 2. **Subsystem design** — `docs/design/*.md` (idempotency / job / observability / outbox / rest / worker). Each design doc's "why / alternatives / trade-off" content. | ||
| 3. **Deliberate exclusions** — `docs/project/*.md` (esp. `out-of-scope.md`), `policy.md`, `scope.md`. Negative decisions with rationale. | ||
| 4. **Latent** — per-package `README.md` (Design Intent / Notes) + code `// why` rationale comments. Decisions made in code but never elevated to a doc. | ||
|
|
||
| ## Output (per candidate) | ||
|
|
||
| ```text | ||
| - title: short decision title (imperative, ADR-style) | ||
| type: decision | exclusion | rule | inventory | ||
| adr_worthy: yes | no | ||
| source: file:line (evidence) | ||
| alternatives: present | implied | none | ||
| proposed_adr: which ADR bucket it belongs to (or existing 0001..N) | ||
| note: one line — why worthy / why not | ||
| ``` | ||
|
|
||
| Aggregate into: (A) ADR bucket list with proposed numbering, (B) rules-stay list, | ||
| (C) inventory-stay list, (D) newly-discovered decisions not in decisions.md. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
|
|
||
| -- === source: database/dml/system_cqrs/health_check/select_system_health.sql === | ||
| -- name: GetDBHealthCheck :one | ||
| SELECT 1 AS health_check; |
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,72 @@ | ||
| --- | ||
| status: accepted | ||
| date: 2026-07-04 | ||
| deciders: [maintainers] | ||
| tags: [meta, documentation] | ||
| --- | ||
|
|
||
| # ADR-0000: Record architecture decisions as ADRs | ||
|
|
||
| ## Status | ||
|
|
||
| accepted | ||
|
|
||
| ## Context | ||
|
|
||
| Collating a project's technology rationale into a single growing file has two problems: | ||
|
|
||
| - **In-place editing loses history.** Rewriting a decision when reality changes discards | ||
| the record of *why the old design was once chosen*. | ||
| - **Mixed content.** Blending immutable decisions with a living inventory (e.g. a dependency | ||
| table that must track `go.mod`) forces a drifting catalog into a "rationale" document, | ||
| where it silently goes stale. | ||
|
|
||
| This is a **template** repository: downstream users fork it and need to understand *why* | ||
| each choice was made, and to *supersede* individual choices with their own without editing | ||
| a shared monolith. | ||
|
|
||
| ## Decision | ||
|
|
||
| Record each architecture decision as its own immutable file under `docs/adr/`, in | ||
| MADR-lite form (see [`template.md`](template.md)). Classify every candidate before it | ||
| lands: | ||
|
|
||
| - **decision** / **exclusion** → an ADR here (immutable; supersede by a new ADR). | ||
| - **rule** (a day-to-day enforced consequence) → stays in `docs/rules.md`, may link its ADR. | ||
| - **inventory** (a catalog that drifts with code, e.g. the dependency list) → a living | ||
| reference (`docs/reference/dependencies.md`), never an ADR. | ||
|
|
||
| ADRs are numbered in dependency / foundational order (principles first), and superseding a | ||
| decision means adding a new `accepted` ADR and flipping the old one to `superseded`, not | ||
| editing its body. | ||
|
|
||
| ## Consequences | ||
|
|
||
| ### Positive Consequences | ||
|
|
||
| - Decision history is preserved; supersession is auditable. | ||
| - Forks can override one decision by adding one ADR. | ||
| - Drifting catalogs (dependencies) live where drift is expected, not inside immutable records. | ||
|
|
||
| ### Negative Consequences | ||
|
|
||
| - More files and cross-references to maintain (each ADR also needs a `docs/ja/adr/` mirror). | ||
| - Contributors must classify (decision vs rule vs inventory) before writing — a small upfront judgment cost. | ||
|
|
||
| ## Alternatives Considered | ||
|
|
||
| ### Keep the single `docs/decisions.md` | ||
|
|
||
| Rejected: in-place edits erase decision history, and the file already mixed immutable | ||
| decisions with a drifting inventory. | ||
|
|
||
| ### One file, append-only decision log (no per-decision files) | ||
|
|
||
| Rejected: forks cannot cleanly supersede an individual decision, and a single file grows | ||
| unbounded and merge-conflicts. | ||
|
|
||
| ## Notes | ||
|
|
||
| - Migration scope, the full ordered ADR list (~92), and per-ADR source references live in | ||
| [the ADR log](README.md). | ||
| - The dependency inventory that lived in `docs/decisions.md` moves to `docs/reference/dependencies.md`. |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.