Skip to content

Commit ef66449

Browse files
committed
add relase check
1 parent 437fe89 commit ef66449

File tree

2 files changed

+153
-1
lines changed

2 files changed

+153
-1
lines changed

CLAUDE.md

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,53 @@
22

33
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
44

5+
## Project Architecture
6+
7+
BirdXplorer is a multi-module Python project for exploring X (formerly Twitter) community notes data:
8+
9+
- **api/**: FastAPI web API (`birdxplorer_api`)
10+
- **common/**: Shared library with models, settings, storage (`birdxplorer_common`)
11+
- **etl/**: Data extraction, transformation, loading (`birdxplorer_etl`)
12+
- **migrate/**: Alembic database migrations
13+
14+
### Dependencies
15+
- All modules use `birdxplorer_common` as foundation
16+
- API and ETL modules depend on `common`
17+
- PostgreSQL 15.4 for data storage
18+
- FastAPI for web API with auto-generated Swagger docs at `/docs`
19+
520
## Commands
6-
- **Test**: `tox` (runs format, lint, test, type check)
21+
22+
### Development Environment
23+
- **Setup env**: `cp .env.example .env` (sets `BX_STORAGE_SETTINGS__PASSWORD=birdxplorer`)
24+
- **Install module**: `pip install -e "./[module][dev]"` (e.g., `pip install -e "./api[dev]"`)
25+
- **Docker dev**: `docker-compose up -d` (starts PostgreSQL + FastAPI on :8000)
26+
27+
### Testing & Quality
28+
- **Test all**: `tox` (from module directory - runs format, lint, test, type check)
29+
- **Test with data**: `BX_DATA_DIR=data/20230924 tox` (for community notes data testing)
730
- **Run single test**: `python -m pytest path/to/test_file.py::TestClass::test_method -v`
831
- **Format**: `black <directory> && isort <directory>`
932
- **Lint**: `pflake8 <directory>`
1033
- **Type check**: `mypy <directory> --strict`
1134

35+
### Database
36+
- **Migrate**: `cd migrate && alembic upgrade head`
37+
- **New migration**: `cd migrate && alembic revision --autogenerate -m "description"`
38+
39+
### Module-Specific Tox
40+
Run from project root, then cd to module:
41+
- **common**: `cd common && tox`
42+
- **api**: `cd api && tox`
43+
- **etl**: `cd etl && tox`
44+
- **migrate**: `cd migrate && tox`
45+
1246
## Code Style
1347
- **Line length**: 120 characters
1448
- **Python version**: 3.10+
1549
- **Formatting**: Black (opinionated)
1650
- **Imports**: isort with Black profile, groups: standard, third-party, first-party
51+
- **First party modules**: `birdxplorer_api`, `birdxplorer_common`, `birdxplorer_etl`
1752
- **Type hints**: Required, use strict mypy checking
1853
- **Naming**: Snake case for functions/variables, PascalCase for classes
1954
- **Error handling**: Custom exceptions inherit from BaseError

RELEASE_CHECK.md

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
このマークダウンファイルはリリース前にするべきチェックリストです。
2+
定期的にこのリストとプロジェクトコードベースを見比べて、プロダクト開発・運用にガバナンスを効かせるために用いられます。
3+
4+
## OSSの利用
5+
6+
### 必須
7+
- セキュリティホールのあるソフトウェアに依存していないか
8+
- 最新バージョンに追従できているか
9+
10+
### 推奨
11+
- 使用しているPackageに致命的なセキュリティの問題がないか(Dependabotで致命的なものがないか)
12+
13+
## 個人情報を取り扱っているか
14+
15+
### 必須
16+
- 取り扱いの承認を社内で受けているか
17+
- プライバシーポリシーの掲載
18+
19+
## 複数のメンバーからレビューを受けているか
20+
21+
### 必須
22+
- バックエンドのレビュー
23+
- インフラのレビュー
24+
- フロントエンドのレビュー
25+
- 外部サービスのレビュー
26+
27+
### 推奨
28+
- AIレビューを設定しているか
29+
30+
## 自前のソースコードが存在するか
31+
32+
### 必須
33+
- GitHubにソースコードが格納されているか
34+
35+
### 推奨
36+
- アプリのクラッシュ情報の収集ができているか
37+
38+
## 利用者へGUIを提供するか
39+
40+
### 必須
41+
- 炎上要素が含まれていないかのレビューを受ける
42+
- 古いロゴをつかっていないか
43+
- コピーライトがはいっているか
44+
45+
### 推奨
46+
- デザインレビューを受ける
47+
- 横向きに対応しているか
48+
- Faviconがあるか
49+
50+
## DBが存在しているか
51+
52+
### 必須
53+
- インターネットからアクセスできなくしてあるか
54+
- 接続元を対象のアプリケーション・サーバーのみにしているか
55+
56+
### 推奨
57+
- ユーザーのパスワードが推測可能な値になっていないか
58+
59+
## AWSを使用しているか
60+
61+
### 必須
62+
- 構成管理はCDKで行われているか
63+
- Credentialsを発行していないか
64+
65+
### 推奨
66+
- インフラの管理がコードに落とし込まれている
67+
- cdk-nagが設定されているか
68+
69+
## Secret類を使用しているか
70+
71+
### 必須
72+
- パスワードなどがプログラムにハードコードされていないか
73+
- 管理している場所が明確人なっているか
74+
- 外部から確認できる状態になっていないか
75+
76+
## アクセシビリティへの配慮が必要か
77+
78+
### 推奨
79+
- タップ範囲の大きさが適切であるか
80+
- 色覚障がい者へのサポートが適切であるか
81+
- テキストの大きさは適切であるか
82+
83+
## ECSコンテナが起動しているか
84+
85+
### 推奨
86+
- コンテナのセキュリティグループはALBからのみのアクセスとなっているか
87+
- サーバーがスケールする必要があるか
88+
- オートスケールが行えるか
89+
90+
## サーバーが存在しているか
91+
92+
### 必須
93+
- 22番ポートが公開されていないか
94+
95+
### 推奨
96+
- 構築が人に依存していないか
97+
- アクセスログを取得しているか
98+
- アクセスログを400日以上保存するようになっているか
99+
- ログ系のファイルが増えて使用ストレージを逼迫した状態になっていないか
100+
101+
## ユーザー作成・サインインなどが存在する
102+
103+
### 必須
104+
- 利用規約の同意
105+
- 利用規約の同意がサインインに含まれているか
106+
- 利用規約同意が法的に問題なく組み込まれているか
107+
108+
## 必ず対応・確認する項目
109+
110+
### 必須
111+
- 一般的なセキュリティチェックをクリアしているか
112+
113+
## 留意点
114+
115+
- フロントエンド、バックエンド、インフラなどリポジトリによっては開発対象にしているものが異なるので、適宜必要なチェックを行ってください。必要かどうかの判断が難しい場合はチェックするようにしてください。
116+
- 各大項目、中項目においてこのプロジェクトに該当するかどうかをまず確認してください。その後それらに紐づく細かな観点について見てください。
117+
- 確認できなかったものについては理由とともに明記してください。

0 commit comments

Comments
 (0)