diff --git a/README.md b/README.md index bed8a0d..20f5341 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ ![Perl](https://img.shields.io/badge/-Perl-39457E?logo=perl&logoColor=white) ![Markdown](https://img.shields.io/badge/-Markdown-000000?logo=markdown&logoColor=white) -> **50K+ stars** | **6K+ forks** | **30 contributors** | **7 languages supported** | **Anthropic Hackathon Winner** +> **50K+ stars** | **6K+ forks** | **30 contributors** | **5 languages supported** | **Anthropic Hackathon Winner** --- @@ -366,6 +366,7 @@ everything-claude-code/ | |-- python/ # Python specific | |-- golang/ # Go specific | |-- perl/ # Perl specific (NEW) +| |-- swift/ # Swift specific | |-- hooks/ # Trigger-based automations | |-- README.md # Hook documentation, recipes, and customization guide @@ -832,7 +833,7 @@ Please contribute! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. ### Ideas for Contributions -- Language-specific skills (Rust, C#, Swift, Kotlin) — Go, Python, Java, Perl already included +- Language-specific skills (Rust, C#, Kotlin, Java) — Go, Python, Perl, Swift, and TypeScript already included - Framework-specific configs (Rails, Laravel, FastAPI, NestJS) — Django, Spring Boot already included - DevOps agents (Kubernetes, Terraform, AWS, Docker) - Testing strategies (different frameworks, visual regression) diff --git a/README.zh-CN.md b/README.zh-CN.md index 45171f6..2eb08d7 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -488,7 +488,7 @@ node tests/hooks/hooks.test.js ### 贡献想法 -- 特定语言的技能(Rust、C#、Swift、Kotlin)- 现已包含 Go、Python、Java、Perl! +- 特定语言的技能(Rust、C#、Kotlin、Java)- 现已包含 Go、Python、Perl、Swift 和 TypeScript! - 特定框架的配置(Django、Rails、Laravel) - DevOps 代理(Kubernetes、Terraform、AWS) - 测试策略(不同框架) diff --git a/rules/perl/coding-style.md b/rules/perl/coding-style.md index 6e522c6..9c7fbb2 100644 --- a/rules/perl/coding-style.md +++ b/rules/perl/coding-style.md @@ -8,7 +8,7 @@ paths: --- # Perl Coding Style -> This file extends [common/coding-style.md](../common/coding-style.md) with Perl specific content. +> This file extends [common/coding-style.md](../common/coding-style.md) with Perl-specific content. ## Standards diff --git a/rules/perl/hooks.md b/rules/perl/hooks.md index c8dc850..0b6daad 100644 --- a/rules/perl/hooks.md +++ b/rules/perl/hooks.md @@ -8,7 +8,7 @@ paths: --- # Perl Hooks -> This file extends [common/hooks.md](../common/hooks.md) with Perl specific content. +> This file extends [common/hooks.md](../common/hooks.md) with Perl-specific content. ## PostToolUse Hooks diff --git a/rules/perl/patterns.md b/rules/perl/patterns.md index ad03fa5..a2f7b4f 100644 --- a/rules/perl/patterns.md +++ b/rules/perl/patterns.md @@ -8,7 +8,7 @@ paths: --- # Perl Patterns -> This file extends [common/patterns.md](../common/patterns.md) with Perl specific content. +> This file extends [common/patterns.md](../common/patterns.md) with Perl-specific content. ## Repository Pattern diff --git a/rules/perl/security.md b/rules/perl/security.md index 3df3cd7..c87fefc 100644 --- a/rules/perl/security.md +++ b/rules/perl/security.md @@ -8,7 +8,7 @@ paths: --- # Perl Security -> This file extends [common/security.md](../common/security.md) with Perl specific content. +> This file extends [common/security.md](../common/security.md) with Perl-specific content. ## Taint Mode diff --git a/rules/perl/testing.md b/rules/perl/testing.md index c1755ad..d451699 100644 --- a/rules/perl/testing.md +++ b/rules/perl/testing.md @@ -8,7 +8,7 @@ paths: --- # Perl Testing -> This file extends [common/testing.md](../common/testing.md) with Perl specific content. +> This file extends [common/testing.md](../common/testing.md) with Perl-specific content. ## Framework diff --git a/skills/perl-patterns/SKILL.md b/skills/perl-patterns/SKILL.md index c6ad503..c08d182 100644 --- a/skills/perl-patterns/SKILL.md +++ b/skills/perl-patterns/SKILL.md @@ -16,6 +16,10 @@ Idiomatic Perl 5.36+ patterns and best practices for building robust, maintainab - Designing Perl module architecture - Migrating pre-5.36 code to modern Perl +## How It Works + +Apply these patterns as a bias toward modern Perl 5.36+ defaults: signatures, explicit modules, focused error handling, and testable boundaries. The examples below are meant to be copied as starting points, then tightened for the actual app, dependency stack, and deployment model in front of you. + ## Core Principles ### 1. Use `v5.36` Pragma diff --git a/skills/perl-security/SKILL.md b/skills/perl-security/SKILL.md index 1dce40e..679c577 100644 --- a/skills/perl-security/SKILL.md +++ b/skills/perl-security/SKILL.md @@ -17,6 +17,10 @@ Comprehensive security guidelines for Perl applications covering input validatio - Executing system commands from Perl - Writing DBI database queries +## How It Works + +Start with taint-aware input boundaries, then move outward: validate and untaint inputs, keep filesystem and process execution constrained, and use parameterized DBI queries everywhere. The examples below show the safe defaults this skill expects you to apply before shipping Perl code that touches user input, the shell, or the network. + ## Taint Mode Perl's taint mode (`-T`) tracks data from external sources and prevents it from being used in unsafe operations without explicit validation. @@ -197,7 +201,7 @@ sub safe_path($base_dir, $user_path) { // die "Path does not exist\n"; my $base_real = realpath($base_dir) // die "Base dir does not exist\n"; - die "Path traversal blocked\n" unless $real =~ /^\Q$base_real\E\//; + die "Path traversal blocked\n" unless $real =~ /^\Q$base_real\E(?:\/|\z)/; return $real; } ```