mirror of
https://github.com/affaan-m/everything-claude-code.git
synced 2026-05-19 23:33:07 +08:00
docs: add native Japanese translation of ECC documentation (ja-JP)
Translate everything-claude-code repository to Japanese including: - 17 root documentation files - 60 agent documentation files - 80 command documentation files - 99 rule files across 18 language directories (common, angular, arkts, cpp, csharp, dart, fsharp, golang, java, kotlin, perl, php, python, ruby, rust, swift, typescript, web) - 199 skill documentation files Total: 455 files translated to Japanese with: - Consistent terminology glossary applied throughout - YAML field names preserved in English (name, description, etc.) - Code blocks and examples untouched (comments translated) - Markdown structure and relative links preserved - Professional translation maintaining technical accuracy This translation expands ECC accessibility to Japanese-speaking developers and teams. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
46
docs/ja-JP/rules/perl/coding-style.md
Normal file
46
docs/ja-JP/rules/perl/coding-style.md
Normal file
@@ -0,0 +1,46 @@
|
||||
---
|
||||
paths:
|
||||
- "**/*.pl"
|
||||
- "**/*.pm"
|
||||
- "**/*.t"
|
||||
- "**/*.psgi"
|
||||
- "**/*.cgi"
|
||||
---
|
||||
# Perl コーディングスタイル
|
||||
|
||||
> このファイルは [common/coding-style.md](../common/coding-style.md) を Perl 固有のコンテンツで拡張します。
|
||||
|
||||
## 標準
|
||||
|
||||
- 常に `use v5.36`(`strict`、`warnings`、`say`、サブルーチンシグネチャを有効化)
|
||||
- サブルーチンシグネチャを使用する — `@_` を手動で展開しない
|
||||
- 明示的な改行付きの `print` よりも `say` を優先
|
||||
|
||||
## 不変性
|
||||
|
||||
- **Moo** で `is => 'ro'` と **Types::Standard** をすべての属性に使用
|
||||
- blessed ハッシュリファレンスを直接使用しない — 常に Moo/Moose アクセサを使用
|
||||
- **OO オーバーライドノート**: `builder` または `default` を持つ Moo の `has` 属性は、計算された読み取り専用値として許容される
|
||||
|
||||
## フォーマット
|
||||
|
||||
以下の設定で **perltidy** を使用:
|
||||
|
||||
```
|
||||
-i=4 # 4スペースインデント
|
||||
-l=100 # 100文字の行長
|
||||
-ce # cuddled else
|
||||
-bar # 開き波括弧は常に右
|
||||
```
|
||||
|
||||
## リンティング
|
||||
|
||||
**perlcritic** をテーマ `core`、`pbp`、`security` で重大度 3 で使用する。
|
||||
|
||||
```bash
|
||||
perlcritic --severity 3 --theme 'core || pbp || security' lib/
|
||||
```
|
||||
|
||||
## リファレンス
|
||||
|
||||
スキル: `perl-patterns` で包括的なモダン Perl のイディオムとベストプラクティスを参照してください。
|
||||
22
docs/ja-JP/rules/perl/hooks.md
Normal file
22
docs/ja-JP/rules/perl/hooks.md
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
paths:
|
||||
- "**/*.pl"
|
||||
- "**/*.pm"
|
||||
- "**/*.t"
|
||||
- "**/*.psgi"
|
||||
- "**/*.cgi"
|
||||
---
|
||||
# Perl フック
|
||||
|
||||
> このファイルは [common/hooks.md](../common/hooks.md) を Perl 固有のコンテンツで拡張します。
|
||||
|
||||
## PostToolUse フック
|
||||
|
||||
`~/.claude/settings.json` で設定:
|
||||
|
||||
- **perltidy**: 編集後に `.pl` と `.pm` ファイルを自動フォーマット
|
||||
- **perlcritic**: `.pm` ファイル編集後にリントチェックを実行
|
||||
|
||||
## 警告
|
||||
|
||||
- スクリプト以外の `.pm` ファイルでの `print` について警告する — `say` またはロギングモジュール(例: `Log::Any`)を使用すること
|
||||
76
docs/ja-JP/rules/perl/patterns.md
Normal file
76
docs/ja-JP/rules/perl/patterns.md
Normal file
@@ -0,0 +1,76 @@
|
||||
---
|
||||
paths:
|
||||
- "**/*.pl"
|
||||
- "**/*.pm"
|
||||
- "**/*.t"
|
||||
- "**/*.psgi"
|
||||
- "**/*.cgi"
|
||||
---
|
||||
# Perl パターン
|
||||
|
||||
> このファイルは [common/patterns.md](../common/patterns.md) を Perl 固有のコンテンツで拡張します。
|
||||
|
||||
## リポジトリパターン
|
||||
|
||||
**DBI** または **DBIx::Class** をインターフェースの背後に使用する:
|
||||
|
||||
```perl
|
||||
package MyApp::Repo::User;
|
||||
use Moo;
|
||||
|
||||
has dbh => (is => 'ro', required => 1);
|
||||
|
||||
sub find_by_id ($self, $id) {
|
||||
my $sth = $self->dbh->prepare('SELECT * FROM users WHERE id = ?');
|
||||
$sth->execute($id);
|
||||
return $sth->fetchrow_hashref;
|
||||
}
|
||||
```
|
||||
|
||||
## DTO / 値オブジェクト
|
||||
|
||||
**Moo** クラスと **Types::Standard** を使用する(Python の dataclass に相当):
|
||||
|
||||
```perl
|
||||
package MyApp::DTO::User;
|
||||
use Moo;
|
||||
use Types::Standard qw(Str Int);
|
||||
|
||||
has name => (is => 'ro', isa => Str, required => 1);
|
||||
has email => (is => 'ro', isa => Str, required => 1);
|
||||
has age => (is => 'ro', isa => Int);
|
||||
```
|
||||
|
||||
## リソース管理
|
||||
|
||||
- 常に `autodie` 付きの **3引数 open** を使用する
|
||||
- ファイル操作には **Path::Tiny** を使用する
|
||||
|
||||
```perl
|
||||
use autodie;
|
||||
use Path::Tiny;
|
||||
|
||||
my $content = path('config.json')->slurp_utf8;
|
||||
```
|
||||
|
||||
## モジュールインターフェース
|
||||
|
||||
`Exporter 'import'` と `@EXPORT_OK` を使用する — `@EXPORT` は使用しない:
|
||||
|
||||
```perl
|
||||
use Exporter 'import';
|
||||
our @EXPORT_OK = qw(parse_config validate_input);
|
||||
```
|
||||
|
||||
## 依存関係管理
|
||||
|
||||
再現可能なインストールのために **cpanfile** + **carton** を使用する:
|
||||
|
||||
```bash
|
||||
carton install
|
||||
carton exec prove -lr t/
|
||||
```
|
||||
|
||||
## リファレンス
|
||||
|
||||
スキル: `perl-patterns` で包括的なモダン Perl のパターンとイディオムを参照してください。
|
||||
69
docs/ja-JP/rules/perl/security.md
Normal file
69
docs/ja-JP/rules/perl/security.md
Normal file
@@ -0,0 +1,69 @@
|
||||
---
|
||||
paths:
|
||||
- "**/*.pl"
|
||||
- "**/*.pm"
|
||||
- "**/*.t"
|
||||
- "**/*.psgi"
|
||||
- "**/*.cgi"
|
||||
---
|
||||
# Perl セキュリティ
|
||||
|
||||
> このファイルは [common/security.md](../common/security.md) を Perl 固有のコンテンツで拡張します。
|
||||
|
||||
## 汚染モード
|
||||
|
||||
- すべての CGI/Web 向けスクリプトで `-T` フラグを使用する
|
||||
- 外部コマンド実行前に `%ENV`(`$ENV{PATH}`、`$ENV{CDPATH}` など)をサニタイズする
|
||||
|
||||
## 入力検証
|
||||
|
||||
- アンテイントには許可リスト正規表現を使用する — `/(.*)/s` は絶対に使用しない
|
||||
- すべてのユーザー入力を明示的なパターンで検証する:
|
||||
|
||||
```perl
|
||||
if ($input =~ /\A([a-zA-Z0-9_-]+)\z/) {
|
||||
my $clean = $1;
|
||||
}
|
||||
```
|
||||
|
||||
## ファイル I/O
|
||||
|
||||
- **3引数 open のみ** — 2引数 open は使用しない
|
||||
- `Cwd::realpath` でパストラバーサルを防止する:
|
||||
|
||||
```perl
|
||||
use Cwd 'realpath';
|
||||
my $safe_path = realpath($user_path);
|
||||
die "Path traversal" unless $safe_path =~ m{\A/allowed/directory/};
|
||||
```
|
||||
|
||||
## プロセス実行
|
||||
|
||||
- **リスト形式の `system()`** を使用する — 単一文字列形式は使用しない
|
||||
- 出力キャプチャには **IPC::Run3** を使用する
|
||||
- 変数補間付きのバッククォートは使用しない
|
||||
|
||||
```perl
|
||||
system('grep', '-r', $pattern, $directory); # 安全
|
||||
```
|
||||
|
||||
## SQL インジェクション防止
|
||||
|
||||
常に DBI プレースホルダを使用する — SQL に補間しない:
|
||||
|
||||
```perl
|
||||
my $sth = $dbh->prepare('SELECT * FROM users WHERE email = ?');
|
||||
$sth->execute($email);
|
||||
```
|
||||
|
||||
## セキュリティスキャン
|
||||
|
||||
**perlcritic** をセキュリティテーマで重大度 4 以上で実行する:
|
||||
|
||||
```bash
|
||||
perlcritic --severity 4 --theme security lib/
|
||||
```
|
||||
|
||||
## リファレンス
|
||||
|
||||
スキル: `perl-security` で包括的な Perl セキュリティパターン、汚染モード、安全な I/O を参照してください。
|
||||
54
docs/ja-JP/rules/perl/testing.md
Normal file
54
docs/ja-JP/rules/perl/testing.md
Normal file
@@ -0,0 +1,54 @@
|
||||
---
|
||||
paths:
|
||||
- "**/*.pl"
|
||||
- "**/*.pm"
|
||||
- "**/*.t"
|
||||
- "**/*.psgi"
|
||||
- "**/*.cgi"
|
||||
---
|
||||
# Perl テスト
|
||||
|
||||
> このファイルは [common/testing.md](../common/testing.md) を Perl 固有のコンテンツで拡張します。
|
||||
|
||||
## フレームワーク
|
||||
|
||||
新規プロジェクトには **Test2::V0** を使用する(Test::More ではない):
|
||||
|
||||
```perl
|
||||
use Test2::V0;
|
||||
|
||||
is($result, 42, 'answer is correct');
|
||||
|
||||
done_testing;
|
||||
```
|
||||
|
||||
## ランナー
|
||||
|
||||
```bash
|
||||
prove -l t/ # lib/ を @INC に追加
|
||||
prove -lr -j8 t/ # 再帰的、8並列ジョブ
|
||||
```
|
||||
|
||||
`lib/` を `@INC` に含めるため、常に `-l` を使用する。
|
||||
|
||||
## カバレッジ
|
||||
|
||||
**Devel::Cover** を使用する — 80% 以上を目標:
|
||||
|
||||
```bash
|
||||
cover -test
|
||||
```
|
||||
|
||||
## モック
|
||||
|
||||
- **Test::MockModule** — 既存モジュールのメソッドをモック
|
||||
- **Test::MockObject** — ゼロからテストダブルを作成
|
||||
|
||||
## 注意点
|
||||
|
||||
- テストファイルは常に `done_testing` で終了する
|
||||
- `prove` で `-l` フラグを忘れない
|
||||
|
||||
## リファレンス
|
||||
|
||||
スキル: `perl-testing` で Test2::V0、prove、Devel::Cover を使った詳細な Perl TDD パターンを参照してください。
|
||||
Reference in New Issue
Block a user