oh-my-customcode 0.101.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/README.md +5 -5
- 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/hooks/hooks.json +10 -0
- package/templates/.claude/hooks/scripts/playwright-compress.sh +50 -0
- 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/design-shotgun/SKILL.md +104 -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/playwright-compress/SKILL.md +68 -0
- package/templates/.claude/skills/pr-auto-improve/SKILL.md +1 -1
- package/templates/.claude/skills/product-strategy/SKILL.md +82 -0
- 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 +4 -3
- package/templates/guides/airflow/README.md +8 -8
- package/templates/guides/browser-automation/01-browser-automation-patterns.md +68 -0
- package/templates/guides/claude-code/14-token-efficiency.md +187 -0
- 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 +3 -3
- package/templates/.claude/agents/lang-java21-expert.md +0 -42
- /package/templates/guides/{java21 → java}/java-style-guide.md +0 -0
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
**[한국어 문서 (Korean)](./README_ko.md)**
|
|
15
15
|
|
|
16
|
-
48 agents.
|
|
16
|
+
48 agents. 112 skills. 22 rules. One command.
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
19
|
npm install -g oh-my-customcode && cd your-project && omcustom init
|
|
@@ -132,7 +132,7 @@ Each agent declares its tools, model, memory scope, and limitations in YAML fron
|
|
|
132
132
|
|
|
133
133
|
---
|
|
134
134
|
|
|
135
|
-
### Skills (
|
|
135
|
+
### Skills (112)
|
|
136
136
|
|
|
137
137
|
| Category | Count | Includes |
|
|
138
138
|
|----------|-------|----------|
|
|
@@ -222,7 +222,7 @@ Key rules: R010 (orchestrator never writes files), R009 (parallel execution mand
|
|
|
222
222
|
|
|
223
223
|
---
|
|
224
224
|
|
|
225
|
-
### Guides (
|
|
225
|
+
### Guides (40)
|
|
226
226
|
|
|
227
227
|
Reference documentation covering best practices, architecture decisions, and integration patterns. Located in `guides/` at project root, covering topics from agent design to CI/CD to observability.
|
|
228
228
|
|
|
@@ -272,14 +272,14 @@ your-project/
|
|
|
272
272
|
├── CLAUDE.md # Entry point
|
|
273
273
|
├── .claude/
|
|
274
274
|
│ ├── agents/ # 48 agent definitions
|
|
275
|
-
│ ├── skills/ #
|
|
275
|
+
│ ├── skills/ # 112 skill modules
|
|
276
276
|
│ ├── rules/ # 22 governance rules (R000-R021)
|
|
277
277
|
│ ├── hooks/ # 15 lifecycle hook scripts
|
|
278
278
|
│ ├── schemas/ # Tool input validation schemas
|
|
279
279
|
│ ├── specs/ # Extracted canonical specs
|
|
280
280
|
│ ├── contexts/ # 4 shared context files
|
|
281
281
|
│ └── ontology/ # Knowledge graph for RAG
|
|
282
|
-
└── guides/ #
|
|
282
|
+
└── guides/ # 40 reference documents
|
|
283
283
|
```
|
|
284
284
|
|
|
285
285
|
---
|
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
|
|
|
@@ -475,6 +475,16 @@
|
|
|
475
475
|
}
|
|
476
476
|
],
|
|
477
477
|
"description": "Advisory reminder to sync skill counts in 6 locations when a SKILL.md is created/modified (R021)"
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
"matcher": "mcp_tool_name matches \"mcp__playwright__.*\" || mcp_tool_name matches \"mcp__claude-in-chrome__.*\"",
|
|
481
|
+
"hooks": [
|
|
482
|
+
{
|
|
483
|
+
"type": "command",
|
|
484
|
+
"command": "bash .claude/hooks/scripts/playwright-compress.sh"
|
|
485
|
+
}
|
|
486
|
+
],
|
|
487
|
+
"description": "Layer 4: Compress Playwright/Chrome MCP output via Haiku summarization"
|
|
478
488
|
}
|
|
479
489
|
],
|
|
480
490
|
"Stop": [
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Layer 4: Playwright/Chrome MCP Output Intelligence Compression
|
|
3
|
+
# Reduces MCP tool output by 94-96% using Haiku summarization
|
|
4
|
+
# Preserves ref= values for interactive flow continuity
|
|
5
|
+
# Source: adapted from treesoop/claude-native-plugin (MIT)
|
|
6
|
+
|
|
7
|
+
set -euo pipefail
|
|
8
|
+
|
|
9
|
+
input=$(cat)
|
|
10
|
+
tool_output=$(echo "$input" | jq -r '.tool_output // ""')
|
|
11
|
+
|
|
12
|
+
# Skip if output is small (< 3000 chars)
|
|
13
|
+
output_len=${#tool_output}
|
|
14
|
+
if [ "$output_len" -lt 3000 ]; then
|
|
15
|
+
echo "$input"
|
|
16
|
+
exit 0
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
# Extract ref= values to preserve
|
|
20
|
+
refs=$(echo "$tool_output" | grep -oE 'ref="[^"]*"' | sort -u || true)
|
|
21
|
+
|
|
22
|
+
# Summarize using Haiku via subscription auth
|
|
23
|
+
summary=$(echo "$tool_output" | claude -p --model haiku "Summarize this browser page content concisely. Preserve ALL ref= attribute values exactly as they appear. Focus on: page structure, interactive elements with their ref values, visible text content, and any error messages." 2>/dev/null) || {
|
|
24
|
+
# Fallback: return original on failure
|
|
25
|
+
echo "$input"
|
|
26
|
+
exit 0
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
# Verify ref= preservation
|
|
30
|
+
if [ -n "$refs" ]; then
|
|
31
|
+
missing_refs=""
|
|
32
|
+
while IFS= read -r ref; do
|
|
33
|
+
if ! echo "$summary" | grep -qF "$ref"; then
|
|
34
|
+
missing_refs="$missing_refs $ref"
|
|
35
|
+
fi
|
|
36
|
+
done <<< "$refs"
|
|
37
|
+
|
|
38
|
+
# Append missing refs if any
|
|
39
|
+
if [ -n "$missing_refs" ]; then
|
|
40
|
+
summary="$summary
|
|
41
|
+
|
|
42
|
+
[Preserved refs]:$missing_refs"
|
|
43
|
+
fi
|
|
44
|
+
fi
|
|
45
|
+
|
|
46
|
+
# Return compressed output
|
|
47
|
+
compressed_len=${#summary}
|
|
48
|
+
savings=$(( (output_len - compressed_len) * 100 / output_len ))
|
|
49
|
+
echo "$input" | jq --arg summary "$summary" --arg savings "${savings}% reduced (${output_len}→${compressed_len} chars)" \
|
|
50
|
+
'.tool_output = $summary | .["updatedMCPToolOutput"] = $summary'
|
|
@@ -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)
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: design-shotgun
|
|
3
|
+
description: Generate 4-6 parallel design mockups for rapid visual comparison — adapted from gstack /design-shotgun pattern
|
|
4
|
+
scope: core
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
user-invocable: true
|
|
7
|
+
argument-hint: "<component/page description>"
|
|
8
|
+
effort: high
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Design Shotgun — Parallel Mockup Generation
|
|
12
|
+
|
|
13
|
+
## Purpose
|
|
14
|
+
|
|
15
|
+
Generates 4-6 independent design variations simultaneously, then presents them side-by-side for comparison. Prevents premature convergence on a single design direction.
|
|
16
|
+
|
|
17
|
+
## Usage
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
/design-shotgun "landing page hero section"
|
|
21
|
+
/design-shotgun "dashboard settings panel"
|
|
22
|
+
/design-shotgun "mobile navigation menu"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Workflow
|
|
26
|
+
|
|
27
|
+
### Phase 1: Brief Analysis
|
|
28
|
+
|
|
29
|
+
Parse the design brief to extract:
|
|
30
|
+
- Component type (page, section, widget, modal)
|
|
31
|
+
- Constraints (brand colors, existing design system, accessibility requirements)
|
|
32
|
+
- Target platform (web, mobile, responsive)
|
|
33
|
+
|
|
34
|
+
### Phase 2: Parallel Generation (R009)
|
|
35
|
+
|
|
36
|
+
Spawn 4 parallel agents, each generating a distinct design approach:
|
|
37
|
+
|
|
38
|
+
| Agent | Style Direction | Focus |
|
|
39
|
+
|-------|----------------|-------|
|
|
40
|
+
| 1 | Minimal | Maximum whitespace, essential elements only |
|
|
41
|
+
| 2 | Data-dense | Information-rich, compact layout |
|
|
42
|
+
| 3 | Visual | Hero imagery, bold typography, emotional |
|
|
43
|
+
| 4 | Conventional | Industry-standard patterns, familiar UX |
|
|
44
|
+
|
|
45
|
+
Each agent generates:
|
|
46
|
+
- HTML mockup (self-contained, inline CSS)
|
|
47
|
+
- Design rationale (2-3 sentences)
|
|
48
|
+
- Accessibility notes
|
|
49
|
+
|
|
50
|
+
### Phase 3: Comparison Board
|
|
51
|
+
|
|
52
|
+
Present all mockups with side-by-side comparison:
|
|
53
|
+
|
|
54
|
+
```markdown
|
|
55
|
+
## Design Shotgun Results: {component}
|
|
56
|
+
|
|
57
|
+
### Variation 1: Minimal
|
|
58
|
+
Rationale: {why}
|
|
59
|
+
[HTML mockup code]
|
|
60
|
+
|
|
61
|
+
### Variation 2: Data-dense
|
|
62
|
+
Rationale: {why}
|
|
63
|
+
[HTML mockup code]
|
|
64
|
+
|
|
65
|
+
### Variation 3: Visual
|
|
66
|
+
Rationale: {why}
|
|
67
|
+
[HTML mockup code]
|
|
68
|
+
|
|
69
|
+
### Variation 4: Conventional
|
|
70
|
+
Rationale: {why}
|
|
71
|
+
[HTML mockup code]
|
|
72
|
+
|
|
73
|
+
## Comparison
|
|
74
|
+
| Criteria | V1 | V2 | V3 | V4 |
|
|
75
|
+
|----------|----|----|----|----|
|
|
76
|
+
| Readability | ★★★ | ★★ | ★★ | ★★★ |
|
|
77
|
+
| Visual impact | ★ | ★★ | ★★★ | ★★ |
|
|
78
|
+
| Information density | ★ | ★★★ | ★★ | ★★ |
|
|
79
|
+
| Accessibility | ★★★ | ★★ | ★★ | ★★★ |
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Phase 4: Selection & Refinement
|
|
83
|
+
|
|
84
|
+
User selects preferred variation(s). Selected design can be:
|
|
85
|
+
- Refined with follow-up iterations
|
|
86
|
+
- Combined with elements from other variations
|
|
87
|
+
- Handed to fe-design-expert for production implementation
|
|
88
|
+
|
|
89
|
+
## Integration
|
|
90
|
+
|
|
91
|
+
| Component | Role |
|
|
92
|
+
|-----------|------|
|
|
93
|
+
| R009 | 4 parallel agents for mockup generation |
|
|
94
|
+
| impeccable-design | Quality baseline for generated mockups |
|
|
95
|
+
| fe-design-expert | Production refinement after selection |
|
|
96
|
+
| web-design-guidelines | Accessibility and UX compliance |
|
|
97
|
+
|
|
98
|
+
## Permission Mode
|
|
99
|
+
|
|
100
|
+
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.
|
|
101
|
+
|
|
102
|
+
## Source
|
|
103
|
+
|
|
104
|
+
Adapted from [garrytan/gstack](https://github.com/garrytan/gstack) /design-shotgun pattern.
|
|
@@ -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
|