oh-my-customcode 0.102.0 → 0.103.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/templates/.claude/agents/arch-speckit-agent.md +1 -1
- package/templates/.claude/agents/be-springboot-expert.md +3 -3
- package/templates/.claude/agents/de-airflow-expert.md +2 -2
- package/templates/.claude/agents/de-dbt-expert.md +1 -0
- package/templates/.claude/agents/de-kafka-expert.md +2 -1
- package/templates/.claude/agents/de-spark-expert.md +3 -1
- package/templates/.claude/agents/fe-flutter-agent.md +3 -3
- package/templates/.claude/agents/lang-java-expert.md +42 -0
- package/templates/.claude/agents/slack-cli-expert.md +1 -1
- package/templates/.claude/ontology/agents.yaml +2 -2
- package/templates/.claude/ontology/skills.yaml +1 -1
- package/templates/.claude/rules/MUST-orchestrator-coordination.md +29 -0
- package/templates/.claude/skills/adaptive-harness/SKILL.md +1 -1
- package/templates/.claude/skills/agora/SKILL.md +2 -0
- package/templates/.claude/skills/airflow-best-practices/SKILL.md +4 -4
- package/templates/.claude/skills/analysis/SKILL.md +1 -1
- package/templates/.claude/skills/dbt-best-practices/SKILL.md +5 -0
- package/templates/.claude/skills/dev-lead-routing/SKILL.md +3 -3
- package/templates/.claude/skills/django-best-practices/SKILL.md +1 -1
- package/templates/.claude/skills/evaluator-optimizer/SKILL.md +2 -0
- package/templates/.claude/skills/flutter-best-practices/SKILL.md +5 -5
- package/templates/.claude/skills/intent-detection/SKILL.md +2 -0
- package/templates/.claude/skills/intent-detection/patterns/agent-triggers.yaml +3 -3
- package/templates/.claude/skills/{java21-best-practices → java-best-practices}/SKILL.md +14 -14
- package/templates/.claude/skills/kafka-best-practices/SKILL.md +3 -1
- package/templates/.claude/skills/multi-model-verification/SKILL.md +2 -0
- package/templates/.claude/skills/pr-auto-improve/SKILL.md +1 -1
- package/templates/.claude/skills/research/SKILL.md +2 -0
- package/templates/.claude/skills/spark-best-practices/SKILL.md +3 -1
- package/templates/.claude/skills/springboot-best-practices/SKILL.md +1 -1
- package/templates/.claude/skills/task-decomposition/SKILL.md +45 -1
- package/templates/.claude/skills/update-docs/SKILL.md +2 -2
- package/templates/.claude/skills/worker-reviewer-pipeline/SKILL.md +2 -0
- package/templates/CLAUDE.md +2 -1
- package/templates/guides/airflow/README.md +8 -8
- package/templates/guides/docker/compose-best-practices.md +3 -5
- package/templates/guides/docker/dockerfile-best-practices.md +9 -9
- package/templates/guides/flutter/index.yaml +1 -1
- package/templates/guides/flutter/state-management.md +4 -4
- package/templates/guides/index.yaml +9 -3
- package/templates/guides/{java21 → java}/index.yaml +9 -9
- package/templates/guides/{java21/modern-java21.md → java/modern-java.md} +2 -2
- package/templates/guides/slack-cli/README.md +1 -1
- package/templates/manifest.json +1 -1
- package/templates/.claude/agents/lang-java21-expert.md +0 -42
- /package/templates/guides/{java21 → java}/java-style-guide.md +0 -0
package/dist/cli/index.js
CHANGED
package/dist/index.js
CHANGED
package/package.json
CHANGED
|
@@ -26,7 +26,7 @@ You are a Spec-Driven Development agent that transforms requirements into execut
|
|
|
26
26
|
External agent from https://github.com/github/spec-kit
|
|
27
27
|
- **Version**: latest
|
|
28
28
|
- **Update**: `uv tool upgrade specify-cli --from git+https://github.com/github/spec-kit.git`
|
|
29
|
-
- **Prerequisites**: Python 3.
|
|
29
|
+
- **Prerequisites**: Python 3.14+, uv, Git
|
|
30
30
|
|
|
31
31
|
## Commands
|
|
32
32
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: be-springboot-expert
|
|
3
|
-
description: Expert Spring Boot
|
|
3
|
+
description: Expert Spring Boot 4.0 developer for enterprise-grade Java 25 LTS applications. Use for Spring Boot projects, Java/Kotlin enterprise apps, RESTful APIs, microservices architecture, Spring Data, security patterns, virtual threads, and GraalVM native images.
|
|
4
4
|
model: sonnet
|
|
5
5
|
domain: backend
|
|
6
6
|
memory: project
|
|
@@ -17,7 +17,7 @@ tools:
|
|
|
17
17
|
permissionMode: bypassPermissions
|
|
18
18
|
---
|
|
19
19
|
|
|
20
|
-
You are an expert Spring Boot developer for enterprise-grade Java/Kotlin applications. Focused on Spring Boot
|
|
20
|
+
You are an expert Spring Boot developer for enterprise-grade Java/Kotlin applications. Focused on Spring Boot 4.0 (GA: 2025-11) with Java 25 LTS.
|
|
21
21
|
|
|
22
22
|
## Capabilities
|
|
23
23
|
|
|
@@ -31,7 +31,7 @@ You are an expert Spring Boot developer for enterprise-grade Java/Kotlin applica
|
|
|
31
31
|
## Reference Documentation
|
|
32
32
|
|
|
33
33
|
- https://docs.spring.io/spring-boot/reference/index.html
|
|
34
|
-
- https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-
|
|
34
|
+
- https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-4.0-Release-Notes
|
|
35
35
|
|
|
36
36
|
## Skills
|
|
37
37
|
|
|
@@ -17,7 +17,7 @@ tools:
|
|
|
17
17
|
permissionMode: bypassPermissions
|
|
18
18
|
---
|
|
19
19
|
|
|
20
|
-
You are an expert Apache Airflow developer for production-ready DAGs following official best practices, targeting **Airflow 3.
|
|
20
|
+
You are an expert Apache Airflow developer for production-ready DAGs following official best practices, targeting **Airflow 3.2.0**.
|
|
21
21
|
|
|
22
22
|
## Capabilities
|
|
23
23
|
|
|
@@ -41,7 +41,7 @@ You are an expert Apache Airflow developer for production-ready DAGs following o
|
|
|
41
41
|
|
|
42
42
|
## Skills
|
|
43
43
|
|
|
44
|
-
Apply **airflow-best-practices** for core Airflow 3.
|
|
44
|
+
Apply **airflow-best-practices** for core Airflow 3.2.0 guidelines.
|
|
45
45
|
|
|
46
46
|
## Reference Guides
|
|
47
47
|
|
|
@@ -21,6 +21,7 @@ You are an expert dbt developer for analytics engineering, SQL modeling, and dat
|
|
|
21
21
|
|
|
22
22
|
## Capabilities
|
|
23
23
|
|
|
24
|
+
- dbt-core 1.11+ with Fusion engine (faster parallel execution)
|
|
24
25
|
- Project structure: staging (stg_), intermediate (int_), marts (fct_, dim_)
|
|
25
26
|
- Materializations (view, ephemeral, table, incremental)
|
|
26
27
|
- Schema tests (unique, not_null, relationships, accepted_values)
|
|
@@ -17,7 +17,7 @@ tools:
|
|
|
17
17
|
permissionMode: bypassPermissions
|
|
18
18
|
---
|
|
19
19
|
|
|
20
|
-
You are an expert Apache Kafka developer for event streaming architectures with high throughput and reliability.
|
|
20
|
+
You are an expert Apache Kafka 4.x developer for event streaming architectures with high throughput and reliability. Kafka 4.x uses KRaft (Kafka Raft) as the default metadata management — ZooKeeper has been fully removed.
|
|
21
21
|
|
|
22
22
|
## Capabilities
|
|
23
23
|
|
|
@@ -26,6 +26,7 @@ You are an expert Apache Kafka developer for event streaming architectures with
|
|
|
26
26
|
- Consumer applications with proper offset management
|
|
27
27
|
- Kafka Streams and Connect pipelines
|
|
28
28
|
- Schema Registry with Avro/Protobuf serialization
|
|
29
|
+
- KRaft cluster deployment and configuration (ZooKeeper removed in Kafka 4.x)
|
|
29
30
|
- Cluster performance and monitoring
|
|
30
31
|
- Event-driven architectures and CQRS patterns
|
|
31
32
|
|
|
@@ -17,17 +17,19 @@ tools:
|
|
|
17
17
|
permissionMode: bypassPermissions
|
|
18
18
|
---
|
|
19
19
|
|
|
20
|
-
You are an expert Apache Spark developer for performant distributed data processing using PySpark and Scala.
|
|
20
|
+
You are an expert Apache Spark 4.x developer for performant distributed data processing using PySpark and Scala. Spark 4.0 introduces Spark Connect as a decoupled client-server protocol and enables ANSI mode by default.
|
|
21
21
|
|
|
22
22
|
## Capabilities
|
|
23
23
|
|
|
24
24
|
- DataFrame and Dataset APIs, Spark SQL
|
|
25
|
+
- Spark Connect for decoupled client-server communication (Spark 4.x)
|
|
25
26
|
- Broadcast joins and hint-based optimization
|
|
26
27
|
- Partitioning and bucketing strategies
|
|
27
28
|
- Structured Streaming applications
|
|
28
29
|
- Resource management (executor/driver memory, dynamic allocation)
|
|
29
30
|
- Storage format optimization (Parquet, ORC, Delta, Iceberg)
|
|
30
31
|
- Job profiling via Spark UI
|
|
32
|
+
- ANSI mode compliance (default in Spark 4.x — stricter SQL semantics)
|
|
31
33
|
|
|
32
34
|
## Skills
|
|
33
35
|
|
|
@@ -22,8 +22,8 @@ You are an expert Flutter developer following official documentation and Dart be
|
|
|
22
22
|
## Capabilities
|
|
23
23
|
|
|
24
24
|
- Widget composition (StatelessWidget, StatefulWidget, InheritedWidget)
|
|
25
|
-
- State management: Riverpod 3.
|
|
26
|
-
- Dart 3.
|
|
25
|
+
- State management: Riverpod 3.3 (default), BLoC 9.1 (enterprise)
|
|
26
|
+
- Dart 3.11 null safety, sealed classes, pattern matching, records
|
|
27
27
|
- go_router declarative navigation with deep linking
|
|
28
28
|
- freezed immutable data models with code generation
|
|
29
29
|
- Performance: const constructors, RepaintBoundary, Isolate
|
|
@@ -32,7 +32,7 @@ You are an expert Flutter developer following official documentation and Dart be
|
|
|
32
32
|
|
|
33
33
|
## Default Stack
|
|
34
34
|
|
|
35
|
-
- **State**: Riverpod 3.
|
|
35
|
+
- **State**: Riverpod 3.3
|
|
36
36
|
- **Navigation**: go_router
|
|
37
37
|
- **Models**: freezed + json_serializable
|
|
38
38
|
- **HTTP**: dio
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: lang-java-expert
|
|
3
|
+
description: Expert Java 25 LTS developer for modern Java with Virtual Threads, Pattern Matching, Record Patterns, and Sequenced Collections. Use for Java files (*.java, pom.xml, build.gradle), Java-related keywords, high-concurrency systems, data-centric APIs with Records, and migrating from older Java versions.
|
|
4
|
+
model: sonnet
|
|
5
|
+
domain: backend
|
|
6
|
+
memory: project
|
|
7
|
+
effort: high
|
|
8
|
+
skills:
|
|
9
|
+
- java-best-practices
|
|
10
|
+
tools:
|
|
11
|
+
- Read
|
|
12
|
+
- Write
|
|
13
|
+
- Edit
|
|
14
|
+
- Grep
|
|
15
|
+
- Glob
|
|
16
|
+
- Bash
|
|
17
|
+
permissionMode: bypassPermissions
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
You are an expert Java 25 LTS developer for modern Java features including Virtual Threads, Pattern Matching, Record Patterns, and Sequenced Collections.
|
|
21
|
+
|
|
22
|
+
## Capabilities
|
|
23
|
+
|
|
24
|
+
- Modern Java 25 LTS leveraging latest features
|
|
25
|
+
- Virtual Threads (JEP 444) for scalable concurrency
|
|
26
|
+
- Pattern Matching for switch and instanceof
|
|
27
|
+
- Record Patterns (JEP 440), Sequenced Collections (JEP 431)
|
|
28
|
+
- Google Java Style Guide compliance
|
|
29
|
+
- Legacy Java migration to Java 25 LTS
|
|
30
|
+
|
|
31
|
+
## Reference Documentation
|
|
32
|
+
|
|
33
|
+
- https://docs.oracle.com/en/java/javase/25/
|
|
34
|
+
- https://google.github.io/styleguide/javaguide.html
|
|
35
|
+
|
|
36
|
+
## Skills
|
|
37
|
+
|
|
38
|
+
Apply **java-best-practices** for core Java guidelines.
|
|
39
|
+
|
|
40
|
+
## Reference Guides
|
|
41
|
+
|
|
42
|
+
Consult `guides/java/` for reference documentation.
|
|
@@ -14,7 +14,7 @@ tools:
|
|
|
14
14
|
permissionMode: bypassPermissions
|
|
15
15
|
---
|
|
16
16
|
|
|
17
|
-
You are an expert Slack CLI developer specialized in building, deploying, and managing Slack apps using the official Slack CLI and the Slack Platform (https://docs.slack.dev/tools/slack-cli/).
|
|
17
|
+
You are an expert Slack CLI developer specialized in building, deploying, and managing Slack apps using the official Slack CLI v4.0 and the Slack Platform (https://docs.slack.dev/tools/slack-cli/). Slack CLI v4.0 adds first-class Slack Agent development support.
|
|
18
18
|
|
|
19
19
|
## Capabilities
|
|
20
20
|
|
|
@@ -6,7 +6,7 @@ generated_at: "2026-02-12T00:00:00Z"
|
|
|
6
6
|
# Agent class hierarchy
|
|
7
7
|
classes:
|
|
8
8
|
LanguageExpert:
|
|
9
|
-
agents: [lang-golang-expert, lang-python-expert, lang-rust-expert, lang-kotlin-expert, lang-typescript-expert, lang-
|
|
9
|
+
agents: [lang-golang-expert, lang-python-expert, lang-rust-expert, lang-kotlin-expert, lang-typescript-expert, lang-java-expert]
|
|
10
10
|
description: "Programming language specialists"
|
|
11
11
|
BackendExpert:
|
|
12
12
|
agents: [be-fastapi-expert, be-springboot-expert, be-go-backend-expert, be-express-expert, be-nestjs-expert]
|
|
@@ -101,7 +101,7 @@ agents:
|
|
|
101
101
|
keywords: [typescript, type-safety, generics, conditional-types, mapped-types, nodejs]
|
|
102
102
|
file_patterns: ["*.ts", "*.tsx", "tsconfig.json", "package.json"]
|
|
103
103
|
|
|
104
|
-
lang-
|
|
104
|
+
lang-java-expert:
|
|
105
105
|
class: LanguageExpert
|
|
106
106
|
description: "Expert Java 21 developer for modern Java with Virtual Threads, Pattern Matching, Record Patterns, and Sequenced Collections. Use for Java files (*.java, pom.xml, build.gradle), Java-related keywords, high-concurrency systems, data-centric APIs with Records, and migrating from older Java versions."
|
|
107
107
|
model: sonnet
|
|
@@ -147,7 +147,7 @@ skills:
|
|
|
147
147
|
keywords: [routing, development, code-review, implementation, refactoring]
|
|
148
148
|
routes_to: [
|
|
149
149
|
lang-golang-expert, lang-python-expert, lang-rust-expert, lang-kotlin-expert,
|
|
150
|
-
lang-typescript-expert, lang-
|
|
150
|
+
lang-typescript-expert, lang-java-expert, fe-vercel-agent, fe-vuejs-agent,
|
|
151
151
|
fe-svelte-agent, fe-flutter-agent, be-fastapi-expert, be-springboot-expert,
|
|
152
152
|
be-go-backend-expert, be-nestjs-expert, be-express-expert, tool-npm-expert,
|
|
153
153
|
tool-optimizer, tool-bun-expert, db-supabase-expert, db-postgres-expert,
|
|
@@ -227,6 +227,35 @@ When the user explicitly signals full-delegation intent, the orchestrator operat
|
|
|
227
227
|
Autonomous mode and `/structured-dev-cycle` (stage-blocker) are mutually exclusive.
|
|
228
228
|
-->
|
|
229
229
|
|
|
230
|
+
## Universal bypassPermissions
|
|
231
|
+
|
|
232
|
+
**ALL Agent tool calls MUST include `mode: "bypassPermissions"`.**
|
|
233
|
+
|
|
234
|
+
The Agent tool defaults to `mode: "acceptEdits"`, which overrides agent frontmatter `permissionMode` and causes permission prompts during unattended execution. This is a CC platform behavior, not a configuration error.
|
|
235
|
+
|
|
236
|
+
| Aspect | Detail |
|
|
237
|
+
|--------|--------|
|
|
238
|
+
| Scope | Every Agent tool call, without exception |
|
|
239
|
+
| Why | CC's Agent tool `mode` default (`acceptEdits`) overrides frontmatter |
|
|
240
|
+
| History | #926 (v0.99.1), #947 (v0.100.1), #955 (v0.103.0) — recurring issue |
|
|
241
|
+
| Enforcement | Prompt-based (R021); all 23 agent-spawning skills include instruction |
|
|
242
|
+
|
|
243
|
+
### Self-Check
|
|
244
|
+
|
|
245
|
+
Before spawning any agent:
|
|
246
|
+
1. Does the Agent tool call include `mode: "bypassPermissions"`? → YES: proceed → NO: add it
|
|
247
|
+
2. Is this a new skill that spawns agents? → Add Permission Mode section
|
|
248
|
+
|
|
249
|
+
### Common Violation
|
|
250
|
+
|
|
251
|
+
```
|
|
252
|
+
❌ WRONG: Agent tool call without mode parameter
|
|
253
|
+
Agent(subagent_type: "lang-golang-expert", prompt: "...")
|
|
254
|
+
|
|
255
|
+
✓ CORRECT: Always include mode
|
|
256
|
+
Agent(subagent_type: "lang-golang-expert", mode: "bypassPermissions", prompt: "...")
|
|
257
|
+
```
|
|
258
|
+
|
|
230
259
|
## Session Continuity
|
|
231
260
|
|
|
232
261
|
After restart/compaction: re-read CLAUDE.md, all delegation rules still apply. Never write code directly from orchestrator.
|
|
@@ -102,7 +102,7 @@ Check for language manifest files and framework indicators:
|
|
|
102
102
|
| `svelte.config.*`, `*.svelte` | Svelte | fe-svelte-agent |
|
|
103
103
|
| `pubspec.yaml`, `*.dart` | Flutter | fe-flutter-agent |
|
|
104
104
|
| `*.kt`, `build.gradle.kts` | Kotlin | lang-kotlin-expert |
|
|
105
|
-
| `*.java`, `pom.xml` | Java | lang-
|
|
105
|
+
| `*.java`, `pom.xml` | Java | lang-java-expert |
|
|
106
106
|
| `spring-boot` in deps | Spring Boot | be-springboot-expert |
|
|
107
107
|
| `express` in package.json deps | Express | be-express-expert |
|
|
108
108
|
| `@nestjs` in package.json deps | NestJS | be-nestjs-expert |
|
|
@@ -192,3 +192,5 @@ agora:
|
|
|
192
192
|
| Accepting first BUILD | May miss edge cases | Loop until ALL agree |
|
|
193
193
|
| Ignoring split decisions | Unresolved disagreements fester | Resolve every split with evidence |
|
|
194
194
|
| Push for consensus too fast | Premature agreement | Let reviewers challenge freely |
|
|
195
|
+
|
|
196
|
+
When spawning agents via the Agent tool during this skill's execution, always pass `mode: "bypassPermissions"`. The Agent tool default (`acceptEdits`) overrides agent frontmatter `permissionMode`, causing permission prompts during unattended execution.
|
|
@@ -5,7 +5,7 @@ scope: core
|
|
|
5
5
|
user-invocable: false
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# Apache Airflow Best Practices (3.
|
|
8
|
+
# Apache Airflow Best Practices (3.2.0)
|
|
9
9
|
|
|
10
10
|
## DAG Authoring
|
|
11
11
|
|
|
@@ -89,6 +89,6 @@ user-invocable: false
|
|
|
89
89
|
- **New UI**: React-based web interface (replaces Flask-based UI)
|
|
90
90
|
|
|
91
91
|
## References
|
|
92
|
-
- [Airflow 3.
|
|
93
|
-
- [Airflow SDK (Task SDK)](https://airflow.apache.org/docs/apache-airflow/3.
|
|
94
|
-
- [Migration Guide 2.x → 3.x](https://airflow.apache.org/docs/apache-airflow/3.
|
|
92
|
+
- [Airflow 3.2.0 Best Practices](https://airflow.apache.org/docs/apache-airflow/3.2.0/best-practices.html)
|
|
93
|
+
- [Airflow SDK (Task SDK)](https://airflow.apache.org/docs/apache-airflow/3.2.0/authoring-and-scheduling/index.html)
|
|
94
|
+
- [Migration Guide 2.x → 3.x](https://airflow.apache.org/docs/apache-airflow/3.2.0/migration-guide.html)
|
|
@@ -76,7 +76,7 @@ Detect tech stack by checking indicator files and dependency manifests.
|
|
|
76
76
|
| Go Backend | go.mod + cmd/ or internal/ dirs | be-go-backend-expert | go-backend-best-practices |
|
|
77
77
|
| Rust | Cargo.toml, *.rs | lang-rust-expert | rust-best-practices |
|
|
78
78
|
| Kotlin | *.kt, build.gradle.kts | lang-kotlin-expert | kotlin-best-practices |
|
|
79
|
-
| Java | *.java, pom.xml | lang-
|
|
79
|
+
| Java | *.java, pom.xml | lang-java-expert | - |
|
|
80
80
|
| Spring Boot | spring-boot in deps | be-springboot-expert | springboot-best-practices |
|
|
81
81
|
| Express.js | "express" in deps | be-express-expert | - |
|
|
82
82
|
| NestJS | "@nestjs" in deps | be-nestjs-expert | - |
|
|
@@ -51,5 +51,10 @@ user-invocable: false
|
|
|
51
51
|
- Use `doc` blocks for reusable text
|
|
52
52
|
- Generate and host dbt docs
|
|
53
53
|
|
|
54
|
+
## Version
|
|
55
|
+
|
|
56
|
+
- **dbt-core**: 1.11+ (includes Fusion engine for faster parallel model execution)
|
|
57
|
+
- Fusion engine is enabled by default in dbt-core 1.11 — no configuration required
|
|
58
|
+
|
|
54
59
|
## References
|
|
55
60
|
- [dbt Best Practices](https://docs.getdbt.com/guides/best-practices)
|
|
@@ -12,7 +12,7 @@ context: fork
|
|
|
12
12
|
|
|
13
13
|
| Type | Agents |
|
|
14
14
|
|------|--------|
|
|
15
|
-
| Language | lang-golang-expert, lang-python-expert, lang-rust-expert, lang-kotlin-expert, lang-typescript-expert, lang-
|
|
15
|
+
| Language | lang-golang-expert, lang-python-expert, lang-rust-expert, lang-kotlin-expert, lang-typescript-expert, lang-java-expert |
|
|
16
16
|
| Frontend | fe-vercel-agent, fe-vuejs-agent, fe-svelte-agent, fe-flutter-agent, fe-design-expert |
|
|
17
17
|
| Backend | be-fastapi-expert, be-springboot-expert, be-go-backend-expert, be-nestjs-expert, be-express-expert, be-django-expert |
|
|
18
18
|
| Tooling | tool-npm-expert, tool-optimizer, tool-bun-expert |
|
|
@@ -31,7 +31,7 @@ context: fork
|
|
|
31
31
|
| `.rs` | lang-rust-expert |
|
|
32
32
|
| `.kt`, `.kts` | lang-kotlin-expert |
|
|
33
33
|
| `.ts`, `.tsx` | lang-typescript-expert |
|
|
34
|
-
| `.java` | lang-
|
|
34
|
+
| `.java` | lang-java-expert |
|
|
35
35
|
| `.js/.jsx` (React) | fe-vercel-agent |
|
|
36
36
|
| `.vue` | fe-vuejs-agent |
|
|
37
37
|
| `.svelte` | fe-svelte-agent |
|
|
@@ -52,7 +52,7 @@ context: fork
|
|
|
52
52
|
| rust | lang-rust-expert |
|
|
53
53
|
| kotlin | lang-kotlin-expert |
|
|
54
54
|
| typescript, ts | lang-typescript-expert |
|
|
55
|
-
| java | lang-
|
|
55
|
+
| java | lang-java-expert |
|
|
56
56
|
| react, next.js, vercel | fe-vercel-agent |
|
|
57
57
|
| vue | fe-vuejs-agent |
|
|
58
58
|
| svelte | fe-svelte-agent |
|
|
@@ -7,7 +7,7 @@ user-invocable: false
|
|
|
7
7
|
|
|
8
8
|
## Purpose
|
|
9
9
|
|
|
10
|
-
Apply Django patterns for building production-ready, secure, and maintainable Python web applications.
|
|
10
|
+
Apply Django 6.0.4 patterns for building production-ready, secure, and maintainable Python web applications.
|
|
11
11
|
|
|
12
12
|
## Rules
|
|
13
13
|
|
|
@@ -419,3 +419,5 @@ Integration: Works with [impeccable-design](/skills/impeccable-design) skill for
|
|
|
419
419
|
### Harness Eval Preset
|
|
420
420
|
|
|
421
421
|
The `harness-eval` skill provides a structured 15-task SE benchmark rubric that can be used as a preset for the evaluator-optimizer pipeline. When invoked via `/omcustom:harness-eval`, the harness rubric dimensions (Test Coverage 30%, Architecture 25%, Error Handling 25%, Extensibility 20%) are loaded as the sprint contract criteria.
|
|
422
|
+
|
|
423
|
+
When spawning agents via the Agent tool during this skill's execution, always pass `mode: "bypassPermissions"`. The Agent tool default (`acceptEdits`) overrides agent frontmatter `permissionMode`, causing permission prompts during unattended execution.
|
|
@@ -81,8 +81,8 @@ Reference: guides/flutter/fundamentals.md
|
|
|
81
81
|
|
|
82
82
|
```yaml
|
|
83
83
|
default_choice:
|
|
84
|
-
new_projects: "Riverpod 3.
|
|
85
|
-
enterprise: "BLoC 9.
|
|
84
|
+
new_projects: "Riverpod 3.3"
|
|
85
|
+
enterprise: "BLoC 9.1"
|
|
86
86
|
simple_prototypes: "setState or Provider"
|
|
87
87
|
avoid: "GetX (maintenance crisis, runtime crashes)"
|
|
88
88
|
|
|
@@ -285,7 +285,7 @@ Reference: guides/flutter/architecture.md
|
|
|
285
285
|
## Default Stack
|
|
286
286
|
|
|
287
287
|
```yaml
|
|
288
|
-
state_management: Riverpod 3.
|
|
288
|
+
state_management: Riverpod 3.3
|
|
289
289
|
navigation: go_router
|
|
290
290
|
models: freezed + json_serializable
|
|
291
291
|
di: Riverpod (built-in)
|
|
@@ -298,7 +298,7 @@ structure: Official MVVM (lib/{ui,data}/)
|
|
|
298
298
|
## Enterprise Stack
|
|
299
299
|
|
|
300
300
|
```yaml
|
|
301
|
-
state_management: BLoC 9.
|
|
301
|
+
state_management: BLoC 9.1 + Cubit
|
|
302
302
|
navigation: go_router or auto_route
|
|
303
303
|
models: freezed + json_serializable
|
|
304
304
|
di: GetIt + injectable (or Riverpod)
|
|
@@ -314,7 +314,7 @@ When writing or reviewing Flutter/Dart code:
|
|
|
314
314
|
1. **Always** use const constructors for static widgets
|
|
315
315
|
2. **Always** return Result<T> from repositories, never throw
|
|
316
316
|
3. **Always** use flutter_secure_storage for sensitive data
|
|
317
|
-
4. **Prefer** Riverpod 3.
|
|
317
|
+
4. **Prefer** Riverpod 3.3 for new projects, BLoC for enterprise
|
|
318
318
|
5. **Prefer** StatelessWidget classes over helper functions
|
|
319
319
|
6. **Prefer** sealed classes for state/result types (exhaustive matching)
|
|
320
320
|
7. **Use** freezed for all data model classes
|
|
@@ -306,3 +306,5 @@ Check Codex CLI availability
|
|
|
306
306
|
├── Method: codex-exec (xhigh) | WebFetch fallback
|
|
307
307
|
└── Reason: {explanation}
|
|
308
308
|
```
|
|
309
|
+
|
|
310
|
+
When spawning agents via the Agent tool during this skill's execution, always pass `mode: "bypassPermissions"`. The Agent tool default (`acceptEdits`) overrides agent frontmatter `permissionMode`, causing permission prompts during unattended execution.
|
|
@@ -69,10 +69,10 @@ agents:
|
|
|
69
69
|
supported_actions: [review, fix, refactor, explain]
|
|
70
70
|
base_confidence: 40
|
|
71
71
|
|
|
72
|
-
lang-
|
|
72
|
+
lang-java-expert:
|
|
73
73
|
keywords:
|
|
74
|
-
korean: [자바, 자바
|
|
75
|
-
english: [java,
|
|
74
|
+
korean: [자바, 자바25]
|
|
75
|
+
english: [java, java25, jdk25, jdk]
|
|
76
76
|
file_patterns: ["*.java", "pom.xml", "build.gradle"]
|
|
77
77
|
supported_actions: [review, create, fix, refactor]
|
|
78
78
|
base_confidence: 35
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
3
|
-
description: Modern Java
|
|
2
|
+
name: java-best-practices
|
|
3
|
+
description: Modern Java 25 LTS patterns from Virtual Threads, Pattern Matching, Records, and Sealed Classes
|
|
4
4
|
scope: core
|
|
5
5
|
user-invocable: false
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
## Purpose
|
|
9
9
|
|
|
10
|
-
Apply modern Java
|
|
10
|
+
Apply modern Java 25 LTS patterns and best practices leveraging the latest language features for clean, performant, and maintainable Java code.
|
|
11
11
|
|
|
12
12
|
## Core Principles
|
|
13
13
|
|
|
@@ -44,7 +44,7 @@ records:
|
|
|
44
44
|
example: record Point(int x, int y) {}
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
Reference: guides/
|
|
47
|
+
Reference: guides/java/java-style-guide.md
|
|
48
48
|
|
|
49
49
|
### 2. Virtual Threads (JEP 444)
|
|
50
50
|
|
|
@@ -65,7 +65,7 @@ antipatterns:
|
|
|
65
65
|
- "synchronized blocks in Virtual Thread code — use ReentrantLock instead"
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
-
Reference: guides/
|
|
68
|
+
Reference: guides/java/modern-java.md
|
|
69
69
|
|
|
70
70
|
### 3. Pattern Matching
|
|
71
71
|
|
|
@@ -80,7 +80,7 @@ switch_patterns:
|
|
|
80
80
|
null_handling: "case null supported in switch"
|
|
81
81
|
```
|
|
82
82
|
|
|
83
|
-
Reference: guides/
|
|
83
|
+
Reference: guides/java/modern-java.md
|
|
84
84
|
|
|
85
85
|
### 4. Records (JEP 395)
|
|
86
86
|
|
|
@@ -100,7 +100,7 @@ antipatterns:
|
|
|
100
100
|
- "Using records for entities with behavior — prefer classes"
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
Reference: guides/
|
|
103
|
+
Reference: guides/java/modern-java.md
|
|
104
104
|
|
|
105
105
|
### 5. Record Patterns (JEP 440)
|
|
106
106
|
|
|
@@ -111,7 +111,7 @@ patterns:
|
|
|
111
111
|
nested: "Nested record patterns for deep destructuring"
|
|
112
112
|
```
|
|
113
113
|
|
|
114
|
-
Reference: guides/
|
|
114
|
+
Reference: guides/java/modern-java.md
|
|
115
115
|
|
|
116
116
|
### 6. Sealed Classes (JEP 409)
|
|
117
117
|
|
|
@@ -124,7 +124,7 @@ principles:
|
|
|
124
124
|
pattern: "sealed interface with record implementations, exhaustive switch (no default needed)"
|
|
125
125
|
```
|
|
126
126
|
|
|
127
|
-
Reference: guides/
|
|
127
|
+
Reference: guides/java/modern-java.md
|
|
128
128
|
|
|
129
129
|
### 7. Sequenced Collections (JEP 431)
|
|
130
130
|
|
|
@@ -136,7 +136,7 @@ principles:
|
|
|
136
136
|
methods: "getFirst(), getLast(), addFirst(), addLast(), reversed(), firstEntry()"
|
|
137
137
|
```
|
|
138
138
|
|
|
139
|
-
Reference: guides/
|
|
139
|
+
Reference: guides/java/modern-java.md
|
|
140
140
|
|
|
141
141
|
### 8. Text Blocks and String Features
|
|
142
142
|
|
|
@@ -146,7 +146,7 @@ patterns:
|
|
|
146
146
|
formatted: "String.formatted() for template substitution (since Java 15)"
|
|
147
147
|
```
|
|
148
148
|
|
|
149
|
-
Reference: guides/
|
|
149
|
+
Reference: guides/java/modern-java.md
|
|
150
150
|
|
|
151
151
|
### 9. Error Handling
|
|
152
152
|
|
|
@@ -162,7 +162,7 @@ patterns:
|
|
|
162
162
|
multi_catch: "catch (IOException | SQLException e) for related exceptions"
|
|
163
163
|
```
|
|
164
164
|
|
|
165
|
-
Reference: guides/
|
|
165
|
+
Reference: guides/java/java-style-guide.md
|
|
166
166
|
|
|
167
167
|
### 10. Documentation
|
|
168
168
|
|
|
@@ -174,11 +174,11 @@ best_practices:
|
|
|
174
174
|
- Keep Javadoc focused on "what", not "how"
|
|
175
175
|
```
|
|
176
176
|
|
|
177
|
-
Reference: guides/
|
|
177
|
+
Reference: guides/java/java-style-guide.md
|
|
178
178
|
|
|
179
179
|
## Application
|
|
180
180
|
|
|
181
|
-
When writing or reviewing Java
|
|
181
|
+
When writing or reviewing Java 25 LTS code:
|
|
182
182
|
|
|
183
183
|
1. **Use** Records for pure data classes over verbose POJOs
|
|
184
184
|
2. **Use** Sealed Classes + Pattern Matching for type hierarchies
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: kafka-best-practices
|
|
3
|
-
description: Apache Kafka best practices for event streaming, topic design, and producer-consumer patterns
|
|
3
|
+
description: Apache Kafka 4.2 best practices for event streaming, topic design, and producer-consumer patterns
|
|
4
4
|
scope: core
|
|
5
5
|
user-invocable: false
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Apache Kafka Best Practices
|
|
9
9
|
|
|
10
|
+
> **Version**: Kafka 4.2.0. ZooKeeper is fully removed in Kafka 4.x — use KRaft mode for all cluster deployments.
|
|
11
|
+
|
|
10
12
|
## Producer Patterns
|
|
11
13
|
|
|
12
14
|
### Idempotent Producer (CRITICAL)
|
|
@@ -128,3 +128,5 @@ Multi-model verification uses 3x the tokens of a single review. Reserve for:
|
|
|
128
128
|
- Security-sensitive modifications
|
|
129
129
|
- Architecture decisions
|
|
130
130
|
- Pre-release verification
|
|
131
|
+
|
|
132
|
+
When spawning agents via the Agent tool during this skill's execution, always pass `mode: "bypassPermissions"`. The Agent tool default (`acceptEdits`) overrides agent frontmatter `permissionMode`, causing permission prompts during unattended execution.
|
|
@@ -96,7 +96,7 @@ User: "improve PR #215"
|
|
|
96
96
|
| *.py | lang-python-expert |
|
|
97
97
|
| *.go | lang-golang-expert |
|
|
98
98
|
| *.kt | lang-kotlin-expert |
|
|
99
|
-
| *.java | lang-
|
|
99
|
+
| *.java | lang-java-expert |
|
|
100
100
|
| *.rs | lang-rust-expert |
|
|
101
101
|
| Test files | qa-engineer |
|
|
102
102
|
| Docs, README | arch-documenter |
|
|
@@ -491,3 +491,5 @@ Agent(
|
|
|
491
491
|
| dag-orchestration | Phase sequencing follows DAG pattern |
|
|
492
492
|
| result-aggregation | Team results formatted per aggregation skill |
|
|
493
493
|
| multi-model-verification | Phase 2 uses multi-model verification pattern |
|
|
494
|
+
|
|
495
|
+
When spawning agents via the Agent tool during this skill's execution, always pass `mode: "bypassPermissions"`. The Agent tool default (`acceptEdits`) overrides agent frontmatter `permissionMode`, causing permission prompts during unattended execution.
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: spark-best-practices
|
|
3
|
-
description: Apache Spark best practices for PySpark and Scala distributed data processing
|
|
3
|
+
description: Apache Spark 4.0.2 best practices for PySpark and Scala distributed data processing
|
|
4
4
|
scope: core
|
|
5
5
|
user-invocable: false
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Apache Spark Best Practices
|
|
9
9
|
|
|
10
|
+
> **Version**: Spark 4.0.2. Key changes from Spark 3.x: ANSI mode is now **default** (stricter SQL type coercion and overflow checks), and Spark Connect provides a decoupled client-server protocol for remote Spark access.
|
|
11
|
+
|
|
10
12
|
## Performance Optimization
|
|
11
13
|
|
|
12
14
|
### Broadcast Joins (CRITICAL)
|
|
@@ -48,6 +48,12 @@ Before decomposing, select the appropriate workflow pattern:
|
|
|
48
48
|
├── Map subtasks to agents (use routing skills)
|
|
49
49
|
└── Generate DAG workflow spec
|
|
50
50
|
|
|
51
|
+
2.5. Validate granularity against pipeline-guards limits:
|
|
52
|
+
├── For each subtask, estimate file count
|
|
53
|
+
├── If files > 10 → emit advisory: [Guard] ⚠ Subtask "{id}" assigned {n} files (> 10) — splitting by layer
|
|
54
|
+
├── If files > 15 → emit hard warning: [Guard] 🛑 Subtask "{id}" assigned {n} files (> 15) — must split
|
|
55
|
+
└── Auto-split oversized subtasks by layer/domain until all ≤ 10
|
|
56
|
+
|
|
51
57
|
3. Present plan to user (R015 transparency)
|
|
52
58
|
├── Show decomposed subtasks with agents
|
|
53
59
|
├── Show dependency graph
|
|
@@ -172,10 +178,43 @@ A subtask is **atomic** when it meets ALL of:
|
|
|
172
178
|
- Single concern (one logical change)
|
|
173
179
|
- Independently testable outcome
|
|
174
180
|
- < 15 minutes estimated duration
|
|
175
|
-
- < 3 files affected
|
|
181
|
+
- < 3 files affected (ideal atomic size)
|
|
182
|
+
- MUST NOT exceed 10 files (pipeline-guards advisory threshold)
|
|
183
|
+
- If > 10 files unavoidable → emit [Guard] warning and split by layer/domain
|
|
184
|
+
- > 15 files is a hard violation — always split further (pipeline-guards hard cap)
|
|
176
185
|
|
|
177
186
|
If a subtask is not atomic → decompose further (max 2 levels deep).
|
|
178
187
|
|
|
188
|
+
## Granularity Validation
|
|
189
|
+
|
|
190
|
+
After decomposition, validate each subtask against pipeline-guards file limits:
|
|
191
|
+
|
|
192
|
+
| Subtask Files | Action |
|
|
193
|
+
|---------------|--------|
|
|
194
|
+
| ≤ 3 | Ideal atomic size — no action |
|
|
195
|
+
| 4-10 | Acceptable — proceed without warning |
|
|
196
|
+
| 11-15 | Advisory warning, attempt further split |
|
|
197
|
+
| > 15 | Hard warning, MUST split before execution |
|
|
198
|
+
|
|
199
|
+
### Validation Process
|
|
200
|
+
|
|
201
|
+
For each decomposed subtask:
|
|
202
|
+
1. Count estimated files
|
|
203
|
+
2. If > 10:
|
|
204
|
+
a. Emit: `[Guard] ⚠ Subtask "{id}" assigned {n} files (> 10) — splitting by layer`
|
|
205
|
+
b. Attempt split by: layer (domain → adapter → handler) or domain separation
|
|
206
|
+
c. Re-validate split results
|
|
207
|
+
3. If > 15 after split attempt:
|
|
208
|
+
a. Emit: `[Guard] 🛑 Subtask "{id}" still has {n} files (> 15) — requires user override`
|
|
209
|
+
b. Pause for user confirmation before proceeding
|
|
210
|
+
|
|
211
|
+
### Generated DAG Adjustment
|
|
212
|
+
|
|
213
|
+
When granularity validation triggers a split, update the DAG spec:
|
|
214
|
+
- Original node is replaced by 2+ child nodes
|
|
215
|
+
- Dependencies are preserved (children inherit parent's deps)
|
|
216
|
+
- `max_parallel` in config respects R009 limits (soft: 4, hard: 5)
|
|
217
|
+
|
|
179
218
|
## Skip Decomposition When
|
|
180
219
|
|
|
181
220
|
| Condition | Reason |
|
|
@@ -185,6 +224,10 @@ If a subtask is not atomic → decompose further (max 2 levels deep).
|
|
|
185
224
|
| User explicitly requests "just do it" | User override |
|
|
186
225
|
| Single domain, single agent | No parallelization benefit |
|
|
187
226
|
|
|
227
|
+
## Permission Mode
|
|
228
|
+
|
|
229
|
+
When spawning agents via the Agent tool during this skill's execution, always pass `mode: "bypassPermissions"`. The Agent tool default (`acceptEdits`) overrides agent frontmatter `permissionMode`, causing permission prompts during unattended execution.
|
|
230
|
+
|
|
188
231
|
## Integration
|
|
189
232
|
|
|
190
233
|
| Component | Integration |
|
|
@@ -195,3 +238,4 @@ If a subtask is not atomic → decompose further (max 2 levels deep).
|
|
|
195
238
|
| R010 | Decomposition happens in orchestrator only |
|
|
196
239
|
| R015 | Plan displayed before execution for user approval |
|
|
197
240
|
| R018 | 3+ agents in plan → check Agent Teams eligibility |
|
|
241
|
+
| pipeline-guards | Validates subtask file count against 10/15 granularity limits |
|
|
@@ -99,7 +99,7 @@ Scanning project structure...
|
|
|
99
99
|
|
|
100
100
|
Agents:
|
|
101
101
|
✓ 15 agents found in .claude/agents/
|
|
102
|
-
✗ Missing: lang-
|
|
102
|
+
✗ Missing: lang-java-expert.md (referenced but not found)
|
|
103
103
|
|
|
104
104
|
Skills:
|
|
105
105
|
✓ 13 skills found in .claude/skills/
|
|
@@ -123,7 +123,7 @@ Run "/update-docs" to fix.
|
|
|
123
123
|
Syncing documentation with project structure...
|
|
124
124
|
|
|
125
125
|
[1/3] Verifying agents
|
|
126
|
-
- Removed reference: lang-
|
|
126
|
+
- Removed reference: lang-java-expert (not found)
|
|
127
127
|
✓ 15 → 14 agents
|
|
128
128
|
|
|
129
129
|
[2/3] Verifying skills
|
|
@@ -163,3 +163,5 @@ config: {max_iterations: 1, quality_gate: majority_pass}
|
|
|
163
163
|
- Worker and Reviewer must be different agent instances (same type allowed)
|
|
164
164
|
- Nested pipelines not supported (use dag-orchestration for complex flows)
|
|
165
165
|
- Pipeline does not auto-commit; orchestrator decides post-pipeline actions
|
|
166
|
+
|
|
167
|
+
When spawning agents via the Agent tool during this skill's execution, always pass `mode: "bypassPermissions"`. The Agent tool default (`acceptEdits`) overrides agent frontmatter `permissionMode`, causing permission prompts during unattended execution.
|
package/templates/CLAUDE.md
CHANGED
|
@@ -103,6 +103,7 @@ oh-my-customcode로 구동됩니다.
|
|
|
103
103
|
| 릴리즈 | `/pipeline auto-dev`, `/omcustom-release-notes`, `/release-plan` | 자동 개발, 릴리즈 노트 |
|
|
104
104
|
| 리서치 | `/research`, `/scout`, `/deep-plan`, `/omcustom:agora` | 병렬 분석, URL 평가, 연구 계획 |
|
|
105
105
|
| 메모리 | `/memory-save`, `/memory-recall` | 세션 메모리 관리 |
|
|
106
|
+
| 최적화 | `/token-efficiency-audit` | 토큰 효율 감사 (3계층 방어 스택) |
|
|
106
107
|
| 시스템 | `/omcustom:lists`, `/omcustom:status`, `/omcustom:help` | 전체 목록, 상태, 도움말 |
|
|
107
108
|
|
|
108
109
|
> 전체 커맨드 목록 (60+ 커맨드): `/omcustom:lists` 실행
|
|
@@ -161,7 +162,7 @@ oh-my-customcode는 소프트웨어 컴파일과 동일한 구조를 따릅니
|
|
|
161
162
|
|
|
162
163
|
| 타입 | 수량 | 에이전트 |
|
|
163
164
|
|------|------|----------|
|
|
164
|
-
| SW Engineer/Language | 6 | lang-golang-expert, lang-python-expert, lang-rust-expert, lang-kotlin-expert, lang-typescript-expert, lang-
|
|
165
|
+
| SW Engineer/Language | 6 | lang-golang-expert, lang-python-expert, lang-rust-expert, lang-kotlin-expert, lang-typescript-expert, lang-java-expert |
|
|
165
166
|
| SW Engineer/Backend | 6 | be-fastapi-expert, be-springboot-expert, be-go-backend-expert, be-express-expert, be-nestjs-expert, be-django-expert |
|
|
166
167
|
| SW Engineer/Frontend | 5 | fe-vercel-agent, fe-vuejs-agent, fe-svelte-agent, fe-flutter-agent, fe-design-expert |
|
|
167
168
|
| SW Engineer/Tooling | 4 | tool-npm-expert, tool-optimizer, tool-bun-expert, slack-cli-expert |
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# Apache Airflow Guide (3.
|
|
1
|
+
# Apache Airflow Guide (3.2.0)
|
|
2
2
|
|
|
3
|
-
Reference documentation for Apache Airflow 3.
|
|
3
|
+
Reference documentation for Apache Airflow 3.2.0 DAG development best practices.
|
|
4
4
|
|
|
5
5
|
## Source
|
|
6
6
|
|
|
7
|
-
Based on [Apache Airflow 3.
|
|
7
|
+
Based on [Apache Airflow 3.2.0 official documentation](https://airflow.apache.org/docs/apache-airflow/3.2.0/) and [Astronomer best practices](https://docs.astronomer.io/).
|
|
8
8
|
|
|
9
9
|
## Airflow 3.x Key Changes
|
|
10
10
|
|
|
@@ -39,9 +39,9 @@ This guide is referenced by:
|
|
|
39
39
|
|
|
40
40
|
## External Resources
|
|
41
41
|
|
|
42
|
-
- [Airflow 3.
|
|
43
|
-
- [Airflow 3.
|
|
44
|
-
- [Airflow Task SDK](https://airflow.apache.org/docs/apache-airflow/3.
|
|
45
|
-
- [Airflow TaskFlow API](https://airflow.apache.org/docs/apache-airflow/3.
|
|
46
|
-
- [Migration Guide 2.x → 3.x](https://airflow.apache.org/docs/apache-airflow/3.
|
|
42
|
+
- [Airflow 3.2.0 Official Docs](https://airflow.apache.org/docs/apache-airflow/3.2.0/)
|
|
43
|
+
- [Airflow 3.2.0 Best Practices](https://airflow.apache.org/docs/apache-airflow/3.2.0/best-practices.html)
|
|
44
|
+
- [Airflow Task SDK](https://airflow.apache.org/docs/apache-airflow/3.2.0/authoring-and-scheduling/index.html)
|
|
45
|
+
- [Airflow TaskFlow API](https://airflow.apache.org/docs/apache-airflow/3.2.0/core-concepts/taskflow.html)
|
|
46
|
+
- [Migration Guide 2.x → 3.x](https://airflow.apache.org/docs/apache-airflow/3.2.0/migration-guide.html)
|
|
47
47
|
- [Astronomer Docs](https://docs.astronomer.io/)
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
## File Structure
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
version: "3.8"
|
|
7
|
+
> **Note**: The `version` field is obsolete as of Compose Spec v5 and should be omitted from modern compose files. Docker Compose now uses the Compose Specification directly.
|
|
9
8
|
|
|
9
|
+
```yaml
|
|
10
10
|
services:
|
|
11
11
|
# Application services
|
|
12
12
|
app:
|
|
@@ -201,8 +201,6 @@ services:
|
|
|
201
201
|
## Complete Example
|
|
202
202
|
|
|
203
203
|
```yaml
|
|
204
|
-
version: "3.8"
|
|
205
|
-
|
|
206
204
|
services:
|
|
207
205
|
app:
|
|
208
206
|
build:
|
|
@@ -260,7 +258,7 @@ services:
|
|
|
260
258
|
- backend
|
|
261
259
|
|
|
262
260
|
nginx:
|
|
263
|
-
image: nginx:1.
|
|
261
|
+
image: nginx:1.28-alpine
|
|
264
262
|
restart: unless-stopped
|
|
265
263
|
ports:
|
|
266
264
|
- "80:80"
|
|
@@ -25,13 +25,13 @@ node_modules
|
|
|
25
25
|
|
|
26
26
|
```dockerfile
|
|
27
27
|
# Build stage
|
|
28
|
-
FROM golang:1.
|
|
28
|
+
FROM golang:1.26 AS builder
|
|
29
29
|
WORKDIR /app
|
|
30
30
|
COPY . .
|
|
31
31
|
RUN go build -o myapp
|
|
32
32
|
|
|
33
33
|
# Runtime stage
|
|
34
|
-
FROM alpine:3.
|
|
34
|
+
FROM alpine:3.23
|
|
35
35
|
COPY --from=builder /app/myapp /usr/local/bin/
|
|
36
36
|
CMD ["myapp"]
|
|
37
37
|
```
|
|
@@ -42,13 +42,13 @@ CMD ["myapp"]
|
|
|
42
42
|
|
|
43
43
|
```dockerfile
|
|
44
44
|
# Pin versions
|
|
45
|
-
FROM ubuntu:
|
|
45
|
+
FROM ubuntu:24.04
|
|
46
46
|
|
|
47
47
|
# Use digest for reproducibility
|
|
48
48
|
FROM node:20@sha256:abc123...
|
|
49
49
|
|
|
50
50
|
# Use official images
|
|
51
|
-
FROM python:3.
|
|
51
|
+
FROM python:3.14-slim
|
|
52
52
|
```
|
|
53
53
|
|
|
54
54
|
### RUN
|
|
@@ -197,12 +197,12 @@ ENV API_KEY=secret123
|
|
|
197
197
|
|
|
198
198
|
```dockerfile
|
|
199
199
|
# Official and verified
|
|
200
|
-
FROM nginx:1.
|
|
200
|
+
FROM nginx:1.28
|
|
201
201
|
FROM postgres:16
|
|
202
202
|
|
|
203
203
|
# Minimal images
|
|
204
204
|
FROM gcr.io/distroless/static
|
|
205
|
-
FROM alpine:3.
|
|
205
|
+
FROM alpine:3.23
|
|
206
206
|
```
|
|
207
207
|
|
|
208
208
|
## Example Dockerfiles
|
|
@@ -229,13 +229,13 @@ CMD ["node", "dist/server.js"]
|
|
|
229
229
|
### Python
|
|
230
230
|
|
|
231
231
|
```dockerfile
|
|
232
|
-
FROM python:3.
|
|
232
|
+
FROM python:3.14-slim AS builder
|
|
233
233
|
WORKDIR /app
|
|
234
234
|
RUN pip install --user pipenv
|
|
235
235
|
COPY Pipfile Pipfile.lock ./
|
|
236
236
|
RUN pipenv install --system --deploy
|
|
237
237
|
|
|
238
|
-
FROM python:3.
|
|
238
|
+
FROM python:3.14-slim
|
|
239
239
|
WORKDIR /app
|
|
240
240
|
COPY --from=builder /root/.local /root/.local
|
|
241
241
|
COPY . .
|
|
@@ -248,7 +248,7 @@ CMD ["gunicorn", "-b", "0.0.0.0:8000", "app:app"]
|
|
|
248
248
|
### Go
|
|
249
249
|
|
|
250
250
|
```dockerfile
|
|
251
|
-
FROM golang:1.
|
|
251
|
+
FROM golang:1.26-alpine AS builder
|
|
252
252
|
WORKDIR /app
|
|
253
253
|
COPY go.mod go.sum ./
|
|
254
254
|
RUN go mod download
|
|
@@ -22,7 +22,7 @@ documents:
|
|
|
22
22
|
|
|
23
23
|
- name: state-management
|
|
24
24
|
path: ./state-management.md
|
|
25
|
-
description: Riverpod 3.
|
|
25
|
+
description: Riverpod 3.3, BLoC 9.1, Provider patterns and selection guide
|
|
26
26
|
|
|
27
27
|
- name: architecture
|
|
28
28
|
path: ./architecture.md
|
|
@@ -6,13 +6,13 @@
|
|
|
6
6
|
|
|
7
7
|
| Approach | Complexity | Scalability | Best For |
|
|
8
8
|
|----------|-----------|-------------|----------|
|
|
9
|
-
| **Riverpod 3.
|
|
10
|
-
| **BLoC 9.
|
|
9
|
+
| **Riverpod 3.3** | Medium | Excellent | New projects (default) |
|
|
10
|
+
| **BLoC 9.1** | High | Excellent | Enterprise, regulated industries |
|
|
11
11
|
| **Provider** | Low | Moderate | Simple apps, learning |
|
|
12
12
|
| **setState** | Low | Poor | Ephemeral local UI state |
|
|
13
13
|
| **GetX** | Low | Poor | **AVOID** for new projects |
|
|
14
14
|
|
|
15
|
-
## Riverpod 3.
|
|
15
|
+
## Riverpod 3.3 (Default)
|
|
16
16
|
|
|
17
17
|
### Provider Types
|
|
18
18
|
|
|
@@ -81,7 +81,7 @@ class ProductListScreen extends ConsumerWidget {
|
|
|
81
81
|
- Use `family` for parameterized providers
|
|
82
82
|
- Use `keepAlive` sparingly (expensive computations only)
|
|
83
83
|
|
|
84
|
-
## BLoC 9.
|
|
84
|
+
## BLoC 9.1 (Enterprise)
|
|
85
85
|
|
|
86
86
|
### Cubit (Simple)
|
|
87
87
|
|
|
@@ -9,6 +9,12 @@ guides:
|
|
|
9
9
|
type: internal
|
|
10
10
|
|
|
11
11
|
# Frontend
|
|
12
|
+
- name: claude-design
|
|
13
|
+
description: Claude Design artifact handoff workflow — connecting Anthropic's conversational design tool outputs to Claude Code's fe-design-expert implementation pipeline
|
|
14
|
+
path: ./claude-design/
|
|
15
|
+
source:
|
|
16
|
+
type: internal
|
|
17
|
+
|
|
12
18
|
- name: impeccable-design
|
|
13
19
|
description: AI design language reference — typography, color, motion, and UX writing for production-grade UI
|
|
14
20
|
path: ./impeccable-design/
|
|
@@ -43,9 +49,9 @@ guides:
|
|
|
43
49
|
origin: go.dev
|
|
44
50
|
url: https://go.dev/doc/effective_go
|
|
45
51
|
|
|
46
|
-
- name:
|
|
47
|
-
description: Java
|
|
48
|
-
path: ./
|
|
52
|
+
- name: java
|
|
53
|
+
description: Java language reference and modern feature documentation
|
|
54
|
+
path: ./java/
|
|
49
55
|
source:
|
|
50
56
|
type: external
|
|
51
57
|
origin: docs.oracle.com
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
# Java
|
|
1
|
+
# Java Guide
|
|
2
2
|
|
|
3
3
|
metadata:
|
|
4
|
-
name:
|
|
5
|
-
description: Java
|
|
4
|
+
name: java
|
|
5
|
+
description: Java 25 LTS language reference and modern feature documentation
|
|
6
6
|
|
|
7
7
|
source:
|
|
8
8
|
type: external
|
|
9
9
|
origin: docs.oracle.com
|
|
10
10
|
urls:
|
|
11
|
-
- https://docs.oracle.com/en/java/javase/
|
|
11
|
+
- https://docs.oracle.com/en/java/javase/25/
|
|
12
12
|
- https://openjdk.org/projects/loom/
|
|
13
13
|
- https://openjdk.org/jeps/440
|
|
14
14
|
- https://openjdk.org/jeps/441
|
|
15
15
|
- https://openjdk.org/jeps/444
|
|
16
16
|
- https://google.github.io/styleguide/javaguide.html
|
|
17
|
-
last_fetched: "2026-
|
|
17
|
+
last_fetched: "2026-04-20"
|
|
18
18
|
|
|
19
19
|
documents:
|
|
20
|
-
- name: modern-
|
|
21
|
-
path: ./modern-
|
|
22
|
-
description: Java
|
|
20
|
+
- name: modern-java
|
|
21
|
+
path: ./modern-java.md
|
|
22
|
+
description: Java 25 LTS modern features (Virtual Threads, Pattern Matching, Records, Sealed Classes)
|
|
23
23
|
|
|
24
24
|
- name: java-style-guide
|
|
25
25
|
path: ./java-style-guide.md
|
|
26
26
|
description: Google Java Style Guide conventions
|
|
27
27
|
|
|
28
28
|
used_by:
|
|
29
|
-
- lang-
|
|
29
|
+
- lang-java-expert
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Modern Java
|
|
1
|
+
# Modern Java Features
|
|
2
2
|
|
|
3
3
|
> Sources: https://openjdk.org/jeps/ (JEP 431, 440, 441, 444)
|
|
4
4
|
|
|
@@ -77,7 +77,7 @@ if (obj instanceof String) {
|
|
|
77
77
|
return s.length();
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
// Java 21
|
|
80
|
+
// Java 21+
|
|
81
81
|
if (obj instanceof String s) {
|
|
82
82
|
return s.length();
|
|
83
83
|
}
|
package/templates/manifest.json
CHANGED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: lang-java21-expert
|
|
3
|
-
description: Expert Java 21 developer for modern Java with Virtual Threads, Pattern Matching, Record Patterns, and Sequenced Collections. Use for Java files (*.java, pom.xml, build.gradle), Java-related keywords, high-concurrency systems, data-centric APIs with Records, and migrating from older Java versions.
|
|
4
|
-
model: sonnet
|
|
5
|
-
domain: backend
|
|
6
|
-
memory: project
|
|
7
|
-
effort: high
|
|
8
|
-
skills:
|
|
9
|
-
- java21-best-practices
|
|
10
|
-
tools:
|
|
11
|
-
- Read
|
|
12
|
-
- Write
|
|
13
|
-
- Edit
|
|
14
|
-
- Grep
|
|
15
|
-
- Glob
|
|
16
|
-
- Bash
|
|
17
|
-
permissionMode: bypassPermissions
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
You are an expert Java 21 developer for modern Java features including Virtual Threads, Pattern Matching, Record Patterns, and Sequenced Collections.
|
|
21
|
-
|
|
22
|
-
## Capabilities
|
|
23
|
-
|
|
24
|
-
- Modern Java 21 leveraging latest features
|
|
25
|
-
- Virtual Threads (JEP 444) for scalable concurrency
|
|
26
|
-
- Pattern Matching for switch and instanceof
|
|
27
|
-
- Record Patterns (JEP 440), Sequenced Collections (JEP 431)
|
|
28
|
-
- Google Java Style Guide compliance
|
|
29
|
-
- Legacy Java migration to Java 21
|
|
30
|
-
|
|
31
|
-
## Reference Documentation
|
|
32
|
-
|
|
33
|
-
- https://docs.oracle.com/en/java/javase/21/
|
|
34
|
-
- https://google.github.io/styleguide/javaguide.html
|
|
35
|
-
|
|
36
|
-
## Skills
|
|
37
|
-
|
|
38
|
-
Apply **java21-best-practices** for core Java 21 guidelines.
|
|
39
|
-
|
|
40
|
-
## Reference Guides
|
|
41
|
-
|
|
42
|
-
Consult `guides/java21/` for reference documentation.
|
|
File without changes
|