Skip to content

Commit a327f98

Browse files
committed
feat: add typescript patterns skill
1 parent e8495aa commit a327f98

10 files changed

Lines changed: 613 additions & 16 deletions

File tree

.codex/config.toml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,42 +38,51 @@ notify = [
3838
[mcp_servers.github]
3939
command = "npx"
4040
args = ["-y", "@modelcontextprotocol/server-github"]
41+
startup_timeout_sec = 30.0
4142

4243
[mcp_servers.context7]
4344
command = "npx"
4445
args = ["-y", "@upstash/context7-mcp@latest"]
46+
startup_timeout_sec = 30.0
4547

4648
[mcp_servers.exa]
4749
url = "https://mcp.exa.ai/mcp"
4850

4951
[mcp_servers.memory]
5052
command = "npx"
5153
args = ["-y", "@modelcontextprotocol/server-memory"]
54+
startup_timeout_sec = 30.0
5255

5356
[mcp_servers.playwright]
5457
command = "npx"
5558
args = ["-y", "@playwright/mcp@latest", "--extension"]
59+
startup_timeout_sec = 30.0
5660

5761
[mcp_servers.sequential-thinking]
5862
command = "npx"
5963
args = ["-y", "@modelcontextprotocol/server-sequential-thinking"]
64+
startup_timeout_sec = 30.0
6065

6166
# Additional MCP servers (uncomment as needed):
6267
# [mcp_servers.supabase]
6368
# command = "npx"
6469
# args = ["-y", "supabase-mcp-server@latest", "--read-only"]
70+
# startup_timeout_sec = 30.0
6571
#
6672
# [mcp_servers.firecrawl]
6773
# command = "npx"
6874
# args = ["-y", "firecrawl-mcp"]
75+
# startup_timeout_sec = 30.0
6976
#
7077
# [mcp_servers.fal-ai]
7178
# command = "npx"
7279
# args = ["-y", "fal-ai-mcp-server"]
80+
# startup_timeout_sec = 30.0
7381
#
7482
# [mcp_servers.cloudflare]
7583
# command = "npx"
7684
# args = ["-y", "@cloudflare/mcp-server-cloudflare"]
85+
# startup_timeout_sec = 30.0
7786

7887
[features]
7988
# Codex multi-agent support is experimental as of March 2026.

AGENTS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Everything Claude Code (ECC) — Agent Instructions
22

3-
This is a **production-ready AI coding plugin** providing 27 specialized agents, 115 skills, 59 commands, and automated hook workflows for software development.
3+
This is a **production-ready AI coding plugin** providing 27 specialized agents, 116 skills, 59 commands, and automated hook workflows for software development.
44

55
**Version:** 1.9.0
66

@@ -142,7 +142,7 @@ Troubleshoot failures: check test isolation → verify mocks → fix implementat
142142

143143
```
144144
agents/ — 27 specialized subagents
145-
skills/ — 115 workflow skills and domain knowledge
145+
skills/ — 116 workflow skills and domain knowledge
146146
commands/ — 59 slash commands
147147
hooks/ — Trigger-based automations
148148
rules/ — Always-follow guidelines (common + per-language)

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ For manual install instructions see the README in the `rules/` folder.
203203
/plugin list everything-claude-code@everything-claude-code
204204
```
205205

206-
**That's it!** You now have access to 27 agents, 115 skills, and 59 commands.
206+
**That's it!** You now have access to 27 agents, 116 skills, and 59 commands.
207207

208208
---
209209

@@ -331,6 +331,7 @@ everything-claude-code/
331331
| |-- springboot-security/ # Spring Boot security (NEW)
332332
| |-- springboot-tdd/ # Spring Boot TDD (NEW)
333333
| |-- springboot-verification/ # Spring Boot verification (NEW)
334+
| |-- typescript-patterns/ # Type modeling, unions, validation, async boundaries (NEW)
334335
| |-- configure-ecc/ # Interactive installation wizard (NEW)
335336
| |-- security-scan/ # AgentShield security auditor integration (NEW)
336337
| |-- java-coding-standards/ # Java coding standards (NEW)
@@ -1071,7 +1072,7 @@ The configuration is automatically detected from `.opencode/opencode.json`.
10711072
|---------|-------------|----------|--------|
10721073
| Agents | ✅ 27 agents | ✅ 12 agents | **Claude Code leads** |
10731074
| Commands | ✅ 59 commands | ✅ 31 commands | **Claude Code leads** |
1074-
| Skills |115 skills | ✅ 37 skills | **Claude Code leads** |
1075+
| Skills |116 skills | ✅ 37 skills | **Claude Code leads** |
10751076
| Hooks | ✅ 8 event types | ✅ 11 events | **OpenCode has more!** |
10761077
| Rules | ✅ 29 rules | ✅ 13 instructions | **Claude Code leads** |
10771078
| MCP Servers | ✅ 14 servers | ✅ Full | **Full parity** |

agents/typescript-reviewer.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ jest --ci # Tests (Jest)
105105

106106
## Reference
107107

108-
This repo does not yet ship a dedicated `typescript-patterns` skill. For detailed TypeScript and JavaScript patterns, use `coding-standards` plus `frontend-patterns` or `backend-patterns` based on the code being reviewed.
108+
For detailed TypeScript and JavaScript patterns, use `typescript-patterns` alongside `frontend-patterns` or `backend-patterns` based on the code being reviewed.
109109

110110
---
111111

manifests/install-modules.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,8 @@
135135
"skills/rust-testing",
136136
"skills/springboot-patterns",
137137
"skills/springboot-tdd",
138-
"skills/springboot-verification"
138+
"skills/springboot-verification",
139+
"skills/typescript-patterns"
139140
],
140141
"targets": [
141142
"claude",

package.json

Lines changed: 107 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,10 +84,116 @@
8484
"scripts/harness-audit.js",
8585
"scripts/session-inspect.js",
8686
"scripts/uninstall.js",
87-
"skills/",
87+
"skills/agent-harness-construction/",
88+
"skills/agentic-engineering/",
89+
"skills/ai-first-engineering/",
90+
"skills/ai-regression-testing/",
91+
"skills/android-clean-architecture/",
92+
"skills/api-design/",
93+
"skills/article-writing/",
94+
"skills/autonomous-loops/",
95+
"skills/backend-patterns/",
96+
"skills/blueprint/",
97+
"skills/carrier-relationship-management/",
98+
"skills/claude-api/",
99+
"skills/claude-devfleet/",
100+
"skills/clickhouse-io/",
101+
"skills/coding-standards/",
102+
"skills/compose-multiplatform-patterns/",
103+
"skills/configure-ecc/",
104+
"skills/content-engine/",
105+
"skills/content-hash-cache-pattern/",
106+
"skills/continuous-agent-loop/",
107+
"skills/continuous-learning/",
108+
"skills/continuous-learning-v2/",
109+
"skills/cost-aware-llm-pipeline/",
110+
"skills/cpp-coding-standards/",
111+
"skills/cpp-testing/",
112+
"skills/crosspost/",
113+
"skills/customs-trade-compliance/",
114+
"skills/data-scraper-agent/",
115+
"skills/database-migrations/",
116+
"skills/deep-research/",
117+
"skills/deployment-patterns/",
118+
"skills/django-patterns/",
119+
"skills/django-security/",
120+
"skills/django-tdd/",
121+
"skills/django-verification/",
122+
"skills/dmux-workflows/",
123+
"skills/docker-patterns/",
124+
"skills/e2e-testing/",
125+
"skills/energy-procurement/",
126+
"skills/enterprise-agent-ops/",
127+
"skills/eval-harness/",
128+
"skills/exa-search/",
129+
"skills/fal-ai-media/",
130+
"skills/foundation-models-on-device/",
131+
"skills/frontend-patterns/",
132+
"skills/frontend-slides/",
133+
"skills/golang-patterns/",
134+
"skills/golang-testing/",
135+
"skills/inventory-demand-planning/",
136+
"skills/investor-materials/",
137+
"skills/investor-outreach/",
138+
"skills/iterative-retrieval/",
139+
"skills/java-coding-standards/",
140+
"skills/jpa-patterns/",
141+
"skills/kotlin-coroutines-flows/",
142+
"skills/kotlin-exposed-patterns/",
143+
"skills/kotlin-ktor-patterns/",
144+
"skills/kotlin-patterns/",
145+
"skills/kotlin-testing/",
146+
"skills/laravel-patterns/",
147+
"skills/laravel-security/",
148+
"skills/laravel-tdd/",
149+
"skills/laravel-verification/",
150+
"skills/liquid-glass-design/",
151+
"skills/logistics-exception-management/",
152+
"skills/market-research/",
153+
"skills/mcp-server-patterns/",
154+
"skills/nanoclaw-repl/",
155+
"skills/nutrient-document-processing/",
156+
"skills/perl-patterns/",
157+
"skills/perl-security/",
158+
"skills/perl-testing/",
159+
"skills/plankton-code-quality/",
160+
"skills/postgres-patterns/",
161+
"skills/production-scheduling/",
162+
"skills/project-guidelines-example/",
163+
"skills/prompt-optimizer/",
164+
"skills/python-patterns/",
165+
"skills/python-testing/",
166+
"skills/quality-nonconformance/",
167+
"skills/ralphinho-rfc-pipeline/",
168+
"skills/regex-vs-llm-structured-text/",
169+
"skills/returns-reverse-logistics/",
170+
"skills/rust-patterns/",
171+
"skills/rust-testing/",
172+
"skills/search-first/",
173+
"skills/security-review/",
174+
"skills/security-scan/",
175+
"skills/skill-stocktake/",
176+
"skills/springboot-patterns/",
177+
"skills/springboot-security/",
178+
"skills/springboot-tdd/",
179+
"skills/springboot-verification/",
180+
"skills/strategic-compact/",
181+
"skills/swift-actor-persistence/",
182+
"skills/swift-concurrency-6-2/",
183+
"skills/swift-protocol-di-testing/",
184+
"skills/swiftui-patterns/",
185+
"skills/tdd-workflow/",
186+
"skills/team-builder/",
187+
"skills/typescript-patterns/",
188+
"skills/verification-loop/",
189+
"skills/video-editing/",
190+
"skills/videodb/",
191+
"skills/visa-doc-translate/",
192+
"skills/x-api/",
88193
"AGENTS.md",
89194
".claude-plugin/plugin.json",
90195
".claude-plugin/README.md",
196+
"the-security-guide.md",
91197
"install.sh",
92198
"install.ps1",
93199
"llms.txt"

scripts/claw.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ const readline = require('readline');
1616
const SESSION_NAME_RE = /^[a-zA-Z0-9][-a-zA-Z0-9]*$/;
1717
const DEFAULT_MODEL = process.env.CLAW_MODEL || 'sonnet';
1818
const DEFAULT_COMPACT_KEEP_TURNS = 20;
19+
const DEFAULT_CLAUDE_TIMEOUT_MS = 30000;
1920

2021
function isValidSessionName(name) {
2122
return typeof name === 'string' && name.length > 0 && SESSION_NAME_RE.test(name);
@@ -83,6 +84,16 @@ function buildPrompt(systemPrompt, history, userMessage) {
8384
return parts.join('\n');
8485
}
8586

87+
function getClaudeTimeoutMs() {
88+
const rawValue = Number(process.env.CLAW_TIMEOUT_MS);
89+
90+
if (Number.isFinite(rawValue) && rawValue > 0) {
91+
return rawValue;
92+
}
93+
94+
return DEFAULT_CLAUDE_TIMEOUT_MS;
95+
}
96+
8697
function askClaude(systemPrompt, history, userMessage, model) {
8798
const fullPrompt = buildPrompt(systemPrompt, history, userMessage);
8899
const args = [];
@@ -95,7 +106,7 @@ function askClaude(systemPrompt, history, userMessage, model) {
95106
encoding: 'utf8',
96107
stdio: ['pipe', 'pipe', 'pipe'],
97108
env: { ...process.env, CLAUDECODE: '' },
98-
timeout: 300000,
109+
timeout: getClaudeTimeoutMs(),
99110
});
100111

101112
if (result.error) {

scripts/sync-ecc-to-codex.sh

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ if [[ "$MODE" == "apply" ]]; then
404404
printf '\n[mcp_servers.supabase]\n'
405405
printf 'command = "pnpm"\n'
406406
printf 'args = ["dlx", "@supabase/mcp-server-supabase@latest", "--features=account,docs,database,debugging,development,functions,storage,branching"]\n'
407-
printf 'startup_timeout_sec = 20.0\n'
407+
printf 'startup_timeout_sec = 30.0\n'
408408
printf 'tool_timeout_sec = 120.0\n'
409409

410410
if [[ -n "$supabase_token" ]]; then
@@ -415,28 +415,34 @@ if [[ "$MODE" == "apply" ]]; then
415415
printf '\n[mcp_servers.playwright]\n'
416416
printf 'command = "pnpm"\n'
417417
printf 'args = ["dlx", "@playwright/mcp@latest"]\n'
418+
printf 'startup_timeout_sec = 30.0\n'
418419

419420
if [[ -n "$context7_key" ]]; then
420421
printf '\n[mcp_servers.context7-mcp]\n'
421422
printf 'command = "pnpm"\n'
422423
printf 'args = ["dlx", "@smithery/cli@latest", "run", "@upstash/context7-mcp", "--key", "%s"]\n' "$(toml_escape "$context7_key")"
424+
printf 'startup_timeout_sec = 30.0\n'
423425
else
424426
printf '\n[mcp_servers.context7-mcp]\n'
425427
printf 'command = "pnpm"\n'
426428
printf 'args = ["dlx", "@upstash/context7-mcp"]\n'
429+
printf 'startup_timeout_sec = 30.0\n'
427430
fi
428431

429432
printf '\n[mcp_servers.github]\n'
430433
printf 'command = "bash"\n'
431434
printf 'args = ["-lc", "%s"]\n' "$(toml_escape "$github_bootstrap")"
435+
printf 'startup_timeout_sec = 30.0\n'
432436

433437
printf '\n[mcp_servers.memory]\n'
434438
printf 'command = "pnpm"\n'
435439
printf 'args = ["dlx", "@modelcontextprotocol/server-memory"]\n'
440+
printf 'startup_timeout_sec = 30.0\n'
436441

437442
printf '\n[mcp_servers.sequential-thinking]\n'
438443
printf 'command = "pnpm"\n'
439444
printf 'args = ["dlx", "@modelcontextprotocol/server-sequential-thinking"]\n'
445+
printf 'startup_timeout_sec = 30.0\n'
440446
} >> "$CONFIG_FILE"
441447
else
442448
log "Skipping MCP config normalization in dry-run mode"

0 commit comments

Comments
 (0)