@cubis/foundry 0.3.71 → 0.3.73
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/CHANGELOG.md +23 -2
- package/dist/cli/core.js +9 -22
- package/dist/cli/core.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/core.ts +13 -22
- package/workflows/powers/accessibility/POWER.md +83 -94
- package/workflows/powers/accessibility/SKILL.md +82 -94
- package/workflows/powers/agent-design/POWER.md +201 -0
- package/workflows/powers/agent-design/SKILL.md +198 -0
- package/workflows/powers/agent-design/references/clarification-patterns.md +153 -0
- package/workflows/powers/agent-design/references/skill-testing.md +164 -0
- package/workflows/powers/agent-design/references/workflow-patterns.md +226 -0
- package/workflows/powers/agentic-eval/POWER.md +62 -0
- package/workflows/powers/agentic-eval/SKILL.md +59 -0
- package/workflows/powers/agentic-eval/references/rubric-and-regression-checklist.md +11 -0
- package/workflows/powers/api-designer/POWER.md +43 -71
- package/workflows/powers/api-designer/SKILL.md +43 -71
- package/workflows/powers/api-patterns/POWER.md +42 -56
- package/workflows/powers/api-patterns/SKILL.md +42 -57
- package/workflows/powers/architecture-designer/POWER.md +43 -60
- package/workflows/powers/architecture-designer/SKILL.md +43 -60
- package/workflows/powers/ask-questions-if-underspecified/POWER.md +51 -3
- package/workflows/powers/auth-architect/POWER.md +69 -0
- package/workflows/powers/auth-architect/SKILL.md +66 -0
- package/workflows/powers/auth-architect/references/session-token-policy-checklist.md +45 -0
- package/workflows/powers/behavioral-modes/POWER.md +100 -9
- package/workflows/powers/c-pro/POWER.md +105 -0
- package/workflows/powers/c-pro/SKILL.md +102 -0
- package/workflows/powers/c-pro/references/build-systems-and-toolchains.md +148 -0
- package/workflows/powers/c-pro/references/common-ub-and-portability.md +166 -0
- package/workflows/powers/c-pro/references/debugging-with-sanitizers.md +205 -0
- package/workflows/powers/c-pro/references/memory-safety-and-build-checklist.md +60 -0
- package/workflows/powers/c-pro/references/posix-and-platform-apis.md +244 -0
- package/workflows/powers/changelog-generator/POWER.md +127 -63
- package/workflows/powers/changelog-generator/SKILL.md +126 -63
- package/workflows/powers/ci-cd-pipelines/POWER.md +156 -0
- package/workflows/powers/ci-cd-pipelines/SKILL.md +153 -0
- package/workflows/powers/ci-cd-pipelines/references/github-actions-patterns.md +160 -0
- package/workflows/powers/ci-cd-pipelines/references/pipeline-security-checklist.md +57 -0
- package/workflows/powers/cli-developer/POWER.md +152 -95
- package/workflows/powers/cli-developer/SKILL.md +152 -95
- package/workflows/powers/cpp-pro/POWER.md +111 -0
- package/workflows/powers/cpp-pro/SKILL.md +108 -0
- package/workflows/powers/cpp-pro/references/concurrency-primitives.md +266 -0
- package/workflows/powers/cpp-pro/references/move-semantics-and-value-types.md +149 -0
- package/workflows/powers/cpp-pro/references/performance-and-profiling.md +191 -0
- package/workflows/powers/cpp-pro/references/raii-and-modern-cpp-checklist.md +87 -0
- package/workflows/powers/cpp-pro/references/template-and-concepts-patterns.md +205 -0
- package/workflows/powers/csharp-pro/POWER.md +47 -22
- package/workflows/powers/csharp-pro/SKILL.md +47 -22
- package/workflows/powers/dart-pro/POWER.md +68 -0
- package/workflows/powers/dart-pro/SKILL.md +65 -0
- package/workflows/powers/dart-pro/references/isolate-and-concurrency.md +180 -0
- package/workflows/powers/dart-pro/references/null-safety-and-async-patterns.md +133 -0
- package/workflows/powers/dart-pro/references/package-structure-and-linting.md +193 -0
- package/workflows/powers/dart-pro/references/sealed-records-patterns.md +173 -0
- package/workflows/powers/dart-pro/references/testing-and-mocking.md +235 -0
- package/workflows/powers/database-design/POWER.md +47 -33
- package/workflows/powers/database-design/SKILL.md +47 -33
- package/workflows/powers/database-optimizer/POWER.md +43 -64
- package/workflows/powers/database-optimizer/SKILL.md +43 -64
- package/workflows/powers/database-skills/POWER.md +59 -93
- package/workflows/powers/database-skills/SKILL.md +59 -93
- package/workflows/powers/debugging-strategies/POWER.md +69 -0
- package/workflows/powers/debugging-strategies/SKILL.md +66 -0
- package/workflows/powers/debugging-strategies/references/reproduce-isolate-verify-checklist.md +42 -0
- package/workflows/powers/deep-research/POWER.md +67 -0
- package/workflows/powers/deep-research/SKILL.md +64 -0
- package/workflows/powers/deep-research/references/multi-round-research-loop.md +80 -0
- package/workflows/powers/design-system-builder/POWER.md +130 -116
- package/workflows/powers/design-system-builder/SKILL.md +130 -116
- package/workflows/powers/devops-engineer/POWER.md +120 -57
- package/workflows/powers/devops-engineer/SKILL.md +120 -57
- package/workflows/powers/docker-kubernetes/POWER.md +94 -0
- package/workflows/powers/docker-kubernetes/SKILL.md +91 -0
- package/workflows/powers/docker-kubernetes/references/dockerfile-optimization-checklist.md +35 -0
- package/workflows/powers/docker-kubernetes/references/kubernetes-deployment-patterns.md +59 -0
- package/workflows/powers/documentation-templates/POWER.md +158 -127
- package/workflows/powers/documentation-templates/SKILL.md +158 -127
- package/workflows/powers/drizzle-expert/POWER.md +66 -0
- package/workflows/powers/drizzle-expert/SKILL.md +63 -0
- package/workflows/powers/drizzle-expert/references/runtime-pairing-matrix.md +16 -0
- package/workflows/powers/drizzle-expert/references/schema-and-migration-playbook.md +18 -0
- package/workflows/powers/error-ux-observability/POWER.md +144 -131
- package/workflows/powers/error-ux-observability/SKILL.md +143 -131
- package/workflows/powers/fastapi-expert/POWER.md +46 -60
- package/workflows/powers/fastapi-expert/SKILL.md +46 -60
- package/workflows/powers/firebase/POWER.md +65 -0
- package/workflows/powers/firebase/SKILL.md +62 -0
- package/workflows/powers/firebase/references/platform-routing.md +16 -0
- package/workflows/powers/firebase/references/rules-and-indexes-checklist.md +11 -0
- package/workflows/powers/flutter-design-system/POWER.md +63 -0
- package/workflows/powers/flutter-design-system/SKILL.md +60 -0
- package/workflows/powers/flutter-design-system/references/shared-widgets.md +29 -0
- package/workflows/powers/flutter-design-system/references/tokens-and-theme.md +34 -0
- package/workflows/powers/flutter-drift/POWER.md +65 -0
- package/workflows/powers/flutter-drift/SKILL.md +62 -0
- package/workflows/powers/flutter-drift/references/migrations.md +22 -0
- package/workflows/powers/flutter-drift/references/query-patterns.md +26 -0
- package/workflows/powers/flutter-feature/POWER.md +65 -0
- package/workflows/powers/flutter-feature/SKILL.md +62 -0
- package/workflows/powers/flutter-feature/references/architecture-rules.md +85 -0
- package/workflows/powers/flutter-feature/references/composite-provider.md +58 -0
- package/workflows/powers/flutter-feature/references/outbox-pattern.md +87 -0
- package/workflows/powers/flutter-feature/references/testing-patterns.md +218 -0
- package/workflows/powers/flutter-go-router/POWER.md +64 -0
- package/workflows/powers/flutter-go-router/SKILL.md +61 -0
- package/workflows/powers/flutter-go-router/references/guards-and-deeplinks.md +20 -0
- package/workflows/powers/flutter-go-router/references/typed-routes.md +27 -0
- package/workflows/powers/flutter-offline-sync/POWER.md +62 -0
- package/workflows/powers/flutter-offline-sync/SKILL.md +59 -0
- package/workflows/powers/flutter-offline-sync/references/outbox-full.md +44 -0
- package/workflows/powers/flutter-repository/POWER.md +64 -0
- package/workflows/powers/flutter-repository/SKILL.md +61 -0
- package/workflows/powers/flutter-repository/references/drift-patterns.md +21 -0
- package/workflows/powers/flutter-repository/references/retrofit-patterns.md +20 -0
- package/workflows/powers/flutter-riverpod/POWER.md +70 -0
- package/workflows/powers/flutter-riverpod/SKILL.md +67 -0
- package/workflows/powers/flutter-riverpod/references/async-and-mutations.md +19 -0
- package/workflows/powers/flutter-riverpod/references/async-lifecycle.md +19 -0
- package/workflows/powers/flutter-riverpod/references/provider-selection.md +20 -0
- package/workflows/powers/flutter-riverpod/references/testing.md +21 -0
- package/workflows/powers/flutter-riverpod/references/version-matrix.md +24 -0
- package/workflows/powers/flutter-state-machine/POWER.md +62 -0
- package/workflows/powers/flutter-state-machine/SKILL.md +59 -0
- package/workflows/powers/flutter-state-machine/references/app-state-contract.md +23 -0
- package/workflows/powers/flutter-state-machine/references/ui-rendering.md +14 -0
- package/workflows/powers/flutter-testing/POWER.md +64 -0
- package/workflows/powers/flutter-testing/SKILL.md +61 -0
- package/workflows/powers/flutter-testing/references/offline-sync-tests.md +16 -0
- package/workflows/powers/flutter-testing/references/test-layers.md +33 -0
- package/workflows/powers/frontend-code-review/POWER.md +137 -0
- package/workflows/powers/frontend-code-review/SKILL.md +134 -0
- package/workflows/powers/frontend-code-review/references/common-antipatterns.md +86 -0
- package/workflows/powers/frontend-code-review/references/performance-budgets.md +56 -0
- package/workflows/powers/frontend-code-review/references/review-checklists.md +47 -0
- package/workflows/powers/frontend-design/POWER.md +163 -362
- package/workflows/powers/frontend-design/SKILL.md +163 -362
- package/workflows/powers/game-development/POWER.md +57 -140
- package/workflows/powers/game-development/SKILL.md +57 -140
- package/workflows/powers/geo-fundamentals/POWER.md +64 -126
- package/workflows/powers/geo-fundamentals/SKILL.md +64 -127
- package/workflows/powers/git-workflow/POWER.md +135 -0
- package/workflows/powers/git-workflow/SKILL.md +132 -0
- package/workflows/powers/git-workflow/references/pr-review-checklist.md +63 -0
- package/workflows/powers/golang-pro/POWER.md +46 -35
- package/workflows/powers/golang-pro/SKILL.md +46 -35
- package/workflows/powers/graphql-architect/POWER.md +44 -62
- package/workflows/powers/graphql-architect/SKILL.md +44 -62
- package/workflows/powers/i18n-localization/POWER.md +118 -103
- package/workflows/powers/i18n-localization/SKILL.md +118 -103
- package/workflows/powers/java-pro/POWER.md +47 -22
- package/workflows/powers/java-pro/SKILL.md +47 -22
- package/workflows/powers/javascript-pro/POWER.md +47 -34
- package/workflows/powers/javascript-pro/SKILL.md +47 -34
- package/workflows/powers/kotlin-pro/POWER.md +46 -23
- package/workflows/powers/kotlin-pro/SKILL.md +46 -23
- package/workflows/powers/legacy-modernizer/POWER.md +43 -60
- package/workflows/powers/legacy-modernizer/SKILL.md +43 -60
- package/workflows/powers/mcp-builder/POWER.md +65 -0
- package/workflows/powers/mcp-builder/SKILL.md +62 -0
- package/workflows/powers/mcp-builder/references/testing-and-evals.md +17 -0
- package/workflows/powers/mcp-builder/references/transport-and-tool-design.md +17 -0
- package/workflows/powers/microservices-architect/POWER.md +43 -70
- package/workflows/powers/microservices-architect/SKILL.md +43 -70
- package/workflows/powers/mobile-design/POWER.md +110 -345
- package/workflows/powers/mobile-design/SKILL.md +110 -345
- package/workflows/powers/mongodb/POWER.md +67 -0
- package/workflows/powers/mongodb/SKILL.md +64 -0
- package/workflows/powers/mongodb/references/mongodb-checklist.md +20 -0
- package/workflows/powers/mysql/POWER.md +67 -0
- package/workflows/powers/mysql/SKILL.md +64 -0
- package/workflows/powers/mysql/references/mysql-checklist.md +20 -0
- package/workflows/powers/neki/POWER.md +67 -0
- package/workflows/powers/neki/SKILL.md +64 -0
- package/workflows/powers/neki/references/neki-checklist.md +18 -0
- package/workflows/powers/nestjs-expert/POWER.md +45 -91
- package/workflows/powers/nestjs-expert/SKILL.md +45 -91
- package/workflows/powers/nextjs-developer/POWER.md +51 -44
- package/workflows/powers/nextjs-developer/SKILL.md +51 -44
- package/workflows/powers/nodejs-best-practices/POWER.md +48 -29
- package/workflows/powers/nodejs-best-practices/SKILL.md +48 -29
- package/workflows/powers/observability/POWER.md +109 -0
- package/workflows/powers/observability/SKILL.md +106 -0
- package/workflows/powers/observability/references/alerting-and-slo-checklist.md +87 -0
- package/workflows/powers/observability/references/opentelemetry-setup-guide.md +121 -0
- package/workflows/powers/openai-docs/POWER.md +61 -0
- package/workflows/powers/openai-docs/SKILL.md +58 -0
- package/workflows/powers/openai-docs/references/official-source-playbook.md +10 -0
- package/workflows/powers/performance-profiling/POWER.md +61 -114
- package/workflows/powers/performance-profiling/SKILL.md +61 -114
- package/workflows/powers/php-pro/POWER.md +116 -0
- package/workflows/powers/php-pro/SKILL.md +113 -0
- package/workflows/powers/php-pro/references/architecture-and-di.md +239 -0
- package/workflows/powers/php-pro/references/modern-php-features.md +189 -0
- package/workflows/powers/php-pro/references/performance-and-deployment.md +197 -0
- package/workflows/powers/php-pro/references/php84-strict-typing-checklist.md +161 -0
- package/workflows/powers/php-pro/references/testing-and-static-analysis.md +235 -0
- package/workflows/powers/playwright-e2e/POWER.md +85 -0
- package/workflows/powers/playwright-e2e/SKILL.md +82 -0
- package/workflows/powers/playwright-e2e/references/locator-trace-flake-checklist.md +80 -0
- package/workflows/powers/postgres/POWER.md +67 -0
- package/workflows/powers/postgres/SKILL.md +64 -0
- package/workflows/powers/postgres/references/postgres-checklist.md +20 -0
- package/workflows/powers/prompt-engineer/POWER.md +47 -30
- package/workflows/powers/prompt-engineer/SKILL.md +47 -30
- package/workflows/powers/python-pro/POWER.md +47 -36
- package/workflows/powers/python-pro/SKILL.md +47 -36
- package/workflows/powers/react-best-practices/POWER.md +56 -33
- package/workflows/powers/react-best-practices/SKILL.md +56 -33
- package/workflows/powers/react-expert/POWER.md +47 -37
- package/workflows/powers/react-expert/SKILL.md +47 -37
- package/workflows/powers/redis/POWER.md +67 -0
- package/workflows/powers/redis/SKILL.md +64 -0
- package/workflows/powers/redis/references/redis-checklist.md +19 -0
- package/workflows/powers/ruby-pro/POWER.md +118 -0
- package/workflows/powers/ruby-pro/SKILL.md +115 -0
- package/workflows/powers/ruby-pro/references/modern-ruby-features.md +189 -0
- package/workflows/powers/ruby-pro/references/object-design-patterns.md +220 -0
- package/workflows/powers/ruby-pro/references/performance-and-profiling.md +224 -0
- package/workflows/powers/ruby-pro/references/ruby-concurrency-and-testing.md +190 -0
- package/workflows/powers/ruby-pro/references/testing-and-rspec.md +236 -0
- package/workflows/powers/rust-pro/POWER.md +45 -31
- package/workflows/powers/rust-pro/SKILL.md +45 -31
- package/workflows/powers/security-engineer/POWER.md +129 -0
- package/workflows/powers/security-engineer/SKILL.md +126 -0
- package/workflows/powers/seo-fundamentals/POWER.md +59 -102
- package/workflows/powers/seo-fundamentals/SKILL.md +59 -102
- package/workflows/powers/serverless-patterns/POWER.md +171 -0
- package/workflows/powers/serverless-patterns/SKILL.md +168 -0
- package/workflows/powers/skill-creator/POWER.md +90 -0
- package/workflows/powers/skill-creator/SKILL.md +87 -0
- package/workflows/powers/skill-creator/references/platform-formats.md +181 -0
- package/workflows/powers/skill-creator/references/schemas.md +430 -0
- package/workflows/powers/spec-miner/POWER.md +49 -57
- package/workflows/powers/spec-miner/SKILL.md +49 -57
- package/workflows/powers/sqlite/POWER.md +67 -0
- package/workflows/powers/sqlite/SKILL.md +64 -0
- package/workflows/powers/sqlite/references/sqlite-checklist.md +19 -0
- package/workflows/powers/sre-engineer/POWER.md +123 -64
- package/workflows/powers/sre-engineer/SKILL.md +123 -64
- package/workflows/powers/static-analysis/POWER.md +121 -77
- package/workflows/powers/static-analysis/SKILL.md +121 -77
- package/workflows/powers/stripe-best-practices/POWER.md +140 -17
- package/workflows/powers/stripe-best-practices/SKILL.md +139 -17
- package/workflows/powers/supabase/POWER.md +67 -0
- package/workflows/powers/supabase/SKILL.md +64 -0
- package/workflows/powers/supabase/references/supabase-checklist.md +19 -0
- package/workflows/powers/swift-pro/POWER.md +118 -0
- package/workflows/powers/swift-pro/SKILL.md +115 -0
- package/workflows/powers/swift-pro/references/concurrency-patterns.md +165 -0
- package/workflows/powers/swift-pro/references/protocol-and-generics.md +172 -0
- package/workflows/powers/swift-pro/references/sendable-and-isolation.md +116 -0
- package/workflows/powers/swift-pro/references/swift-concurrency-and-protocols.md +260 -0
- package/workflows/powers/swift-pro/references/testing-and-packages.md +192 -0
- package/workflows/powers/tailwind-patterns/POWER.md +71 -240
- package/workflows/powers/tailwind-patterns/SKILL.md +71 -240
- package/workflows/powers/testing-patterns/POWER.md +155 -10
- package/workflows/powers/testing-patterns/SKILL.md +155 -10
- package/workflows/powers/typescript-pro/POWER.md +47 -38
- package/workflows/powers/typescript-pro/SKILL.md +47 -38
- package/workflows/powers/vitess/POWER.md +67 -0
- package/workflows/powers/vitess/SKILL.md +64 -0
- package/workflows/powers/vitess/references/vitess-checklist.md +19 -0
- package/workflows/powers/vulnerability-scanner/POWER.md +146 -10
- package/workflows/powers/vulnerability-scanner/SKILL.md +146 -10
- package/workflows/powers/web-perf/POWER.md +43 -170
- package/workflows/powers/web-perf/SKILL.md +43 -170
- package/workflows/powers/webapp-testing/POWER.md +43 -164
- package/workflows/powers/webapp-testing/SKILL.md +43 -164
- package/workflows/workflows/agent-environment-setup/platforms/antigravity/rules/GEMINI.md +65 -42
- package/workflows/workflows/agent-environment-setup/platforms/claude/rules/CLAUDE.md +8 -6
- package/workflows/workflows/agent-environment-setup/platforms/codex/rules/AGENTS.md +65 -41
- package/workflows/workflows/agent-environment-setup/platforms/copilot/rules/copilot-instructions.md +8 -6
- package/workflows/workflows/agent-environment-setup/shared/rules/STEERING.md +9 -8
- package/workflows/workflows/agent-environment-setup/shared/rules/overrides/codex.md +1 -1
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
````markdown
|
|
2
|
+
---
|
|
3
|
+
inclusion: manual
|
|
4
|
+
name: serverless-patterns
|
|
5
|
+
description: Design serverless architectures with Lambda, Edge Functions, event-driven patterns, cold start optimization, and cost management strategies.
|
|
6
|
+
license: Apache-2.0
|
|
7
|
+
metadata:
|
|
8
|
+
author: cubis-foundry
|
|
9
|
+
version: "3.0"
|
|
10
|
+
compatibility: Claude Code, Codex, GitHub Copilot, Gemini CLI
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Serverless Patterns
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Guide serverless architecture design and implementation. Covers function design, event-driven patterns, cold start optimization, edge computing, cost management, and common pitfalls.
|
|
18
|
+
|
|
19
|
+
## When to Use
|
|
20
|
+
|
|
21
|
+
- Designing serverless applications (Lambda, Cloud Functions, Edge Functions)
|
|
22
|
+
- Choosing between serverless and traditional server architectures
|
|
23
|
+
- Optimizing cold starts and execution time
|
|
24
|
+
- Implementing event-driven workflows (queues, streams, triggers)
|
|
25
|
+
- Managing costs and avoiding serverless anti-patterns
|
|
26
|
+
- Building API backends with serverless functions
|
|
27
|
+
|
|
28
|
+
## Instructions
|
|
29
|
+
|
|
30
|
+
### Step 1 — Choose the Right Compute Model
|
|
31
|
+
|
|
32
|
+
| Model | Best For | Latency | Cost Model |
|
|
33
|
+
| ------------------------------------------------ | --------------------------------------- | ---------------------- | ------------------------- |
|
|
34
|
+
| AWS Lambda / Cloud Functions | Event-driven, variable load | Cold start: 100ms-2s | Per-invocation + duration |
|
|
35
|
+
| Edge Functions (Cloudflare Workers, Vercel Edge) | Low latency, geographically distributed | < 50ms (no cold start) | Per-request |
|
|
36
|
+
| Long-running containers (ECS, Cloud Run) | Steady load, WebSockets, > 15 min tasks | No cold start | Per-second |
|
|
37
|
+
|
|
38
|
+
**Serverless fits when**:
|
|
39
|
+
|
|
40
|
+
- Traffic is bursty or unpredictable
|
|
41
|
+
- Functions complete in < 30 seconds
|
|
42
|
+
- Stateless request/response pattern
|
|
43
|
+
- Event-driven processing (queue consumers, webhooks)
|
|
44
|
+
|
|
45
|
+
**Serverless doesn't fit when**:
|
|
46
|
+
|
|
47
|
+
- Persistent connections (WebSockets, long polling)
|
|
48
|
+
- Heavy computation (> 15 min)
|
|
49
|
+
- Steady high-throughput workloads (always-on is cheaper)
|
|
50
|
+
- Complex local state management
|
|
51
|
+
|
|
52
|
+
### Step 2 — Design Functions
|
|
53
|
+
|
|
54
|
+
**Single-responsibility**: one function per operation
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
api/
|
|
58
|
+
├── users/
|
|
59
|
+
│ ├── create.ts (POST /users)
|
|
60
|
+
│ ├── get.ts (GET /users/:id)
|
|
61
|
+
│ └── list.ts (GET /users)
|
|
62
|
+
├── orders/
|
|
63
|
+
│ ├── create.ts (POST /orders)
|
|
64
|
+
│ └── process.ts (SQS consumer)
|
|
65
|
+
└── shared/
|
|
66
|
+
├── db.ts (connection pooling)
|
|
67
|
+
└── auth.ts (token validation)
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Rules**:
|
|
71
|
+
|
|
72
|
+
- Keep functions small (< 200 lines)
|
|
73
|
+
- Initialize expensive resources outside the handler (connection pools, SDK clients)
|
|
74
|
+
- Handle one event type per function
|
|
75
|
+
- Return early for validation failures
|
|
76
|
+
|
|
77
|
+
### Step 3 — Optimize Cold Starts
|
|
78
|
+
|
|
79
|
+
**Cold start happens when**:
|
|
80
|
+
|
|
81
|
+
- First invocation after deployment
|
|
82
|
+
- Scaling up to handle more concurrent requests
|
|
83
|
+
- Function hasn't been invoked for ~15 minutes
|
|
84
|
+
|
|
85
|
+
**Optimization strategies**:
|
|
86
|
+
| Strategy | Impact |
|
|
87
|
+
|----------|--------|
|
|
88
|
+
| Smaller bundle size | Fewer bytes to load = faster start |
|
|
89
|
+
| Fewer dependencies | Less initialization code |
|
|
90
|
+
| Lazy-load non-critical modules | Only import what the handler needs |
|
|
91
|
+
| Provisioned concurrency | Pre-warm instances (costs more) |
|
|
92
|
+
| Edge functions | No cold start (Cloudflare Workers) |
|
|
93
|
+
| Choose lighter runtimes | Node.js > Python > Java for cold start |
|
|
94
|
+
|
|
95
|
+
**Connection pooling**:
|
|
96
|
+
|
|
97
|
+
```typescript
|
|
98
|
+
// Initialize OUTSIDE the handler (reused across invocations)
|
|
99
|
+
const pool = new Pool({ connectionString: process.env.DATABASE_URL, max: 1 });
|
|
100
|
+
|
|
101
|
+
export async function handler(event) {
|
|
102
|
+
const client = await pool.connect();
|
|
103
|
+
try {
|
|
104
|
+
// use client
|
|
105
|
+
} finally {
|
|
106
|
+
client.release(); // return to pool, don't close
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Step 4 — Event-Driven Patterns
|
|
112
|
+
|
|
113
|
+
| Pattern | Use Case | Services |
|
|
114
|
+
| -------------------- | -------------------------------------- | ---------------------------------- |
|
|
115
|
+
| Queue consumer | Decoupled async processing | SQS, Cloud Tasks |
|
|
116
|
+
| Fan-out | Parallel processing of events | SNS + Lambda, EventBridge |
|
|
117
|
+
| Saga / Step Function | Multi-step workflows with compensation | Step Functions, Temporal |
|
|
118
|
+
| CRON | Scheduled tasks | EventBridge rules, Cloud Scheduler |
|
|
119
|
+
| Stream processing | Real-time event processing | Kinesis, Kafka |
|
|
120
|
+
| Webhook receiver | Third-party event handling | API Gateway + Lambda |
|
|
121
|
+
|
|
122
|
+
**Error handling in async functions**:
|
|
123
|
+
|
|
124
|
+
- Use dead-letter queues (DLQ) for failed messages
|
|
125
|
+
- Implement idempotency (same message processed twice = same result)
|
|
126
|
+
- Retry with exponential backoff
|
|
127
|
+
- Alert on DLQ depth
|
|
128
|
+
|
|
129
|
+
### Step 5 — Manage Costs
|
|
130
|
+
|
|
131
|
+
**Cost drivers**:
|
|
132
|
+
|
|
133
|
+
- Number of invocations
|
|
134
|
+
- Execution duration × memory allocated
|
|
135
|
+
- Data transfer (egress)
|
|
136
|
+
- Provisioned concurrency (if used)
|
|
137
|
+
|
|
138
|
+
**Optimization**:
|
|
139
|
+
|
|
140
|
+
- Right-size memory (sometimes more memory = faster = cheaper)
|
|
141
|
+
- Minimize execution time (return early, batch operations)
|
|
142
|
+
- Use reserved concurrency to cap costs
|
|
143
|
+
- Compress responses to reduce data transfer
|
|
144
|
+
- Monitor with cost allocation tags
|
|
145
|
+
|
|
146
|
+
## Output Format
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
## Architecture
|
|
150
|
+
[serverless design with function layout and event flows]
|
|
151
|
+
|
|
152
|
+
## Implementation
|
|
153
|
+
[function code with cold start optimization]
|
|
154
|
+
|
|
155
|
+
## Infrastructure
|
|
156
|
+
[IaC for deployment (CDK, Terraform, serverless.yml)]
|
|
157
|
+
|
|
158
|
+
## Cost Estimate
|
|
159
|
+
[projected costs based on expected traffic]
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## Examples
|
|
163
|
+
|
|
164
|
+
**User**: "Build a serverless API for our mobile app"
|
|
165
|
+
|
|
166
|
+
**Response approach**: API Gateway + Lambda per endpoint. JWT auth at the gateway. DynamoDB or RDS Proxy for data. Optimize cold starts with minimal dependencies. Show CDK or Serverless Framework config.
|
|
167
|
+
|
|
168
|
+
**User**: "Our Lambda functions have 3-second cold starts"
|
|
169
|
+
|
|
170
|
+
**Response approach**: Audit bundle size and dependencies. Lazy-load non-critical modules. Move initialization outside handler. Consider provisioned concurrency for latency-sensitive functions. Evaluate edge functions for the hottest paths.
|
|
171
|
+
````
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: serverless-patterns
|
|
3
|
+
description: Design serverless architectures with Lambda, Edge Functions, event-driven patterns, cold start optimization, and cost management strategies.
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
metadata:
|
|
6
|
+
author: cubis-foundry
|
|
7
|
+
version: "3.0"
|
|
8
|
+
compatibility: Claude Code, Codex, GitHub Copilot, Gemini CLI
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Serverless Patterns
|
|
12
|
+
|
|
13
|
+
## Purpose
|
|
14
|
+
|
|
15
|
+
Guide serverless architecture design and implementation. Covers function design, event-driven patterns, cold start optimization, edge computing, cost management, and common pitfalls.
|
|
16
|
+
|
|
17
|
+
## When to Use
|
|
18
|
+
|
|
19
|
+
- Designing serverless applications (Lambda, Cloud Functions, Edge Functions)
|
|
20
|
+
- Choosing between serverless and traditional server architectures
|
|
21
|
+
- Optimizing cold starts and execution time
|
|
22
|
+
- Implementing event-driven workflows (queues, streams, triggers)
|
|
23
|
+
- Managing costs and avoiding serverless anti-patterns
|
|
24
|
+
- Building API backends with serverless functions
|
|
25
|
+
|
|
26
|
+
## Instructions
|
|
27
|
+
|
|
28
|
+
### Step 1 — Choose the Right Compute Model
|
|
29
|
+
|
|
30
|
+
| Model | Best For | Latency | Cost Model |
|
|
31
|
+
| ------------------------------------------------ | --------------------------------------- | ---------------------- | ------------------------- |
|
|
32
|
+
| AWS Lambda / Cloud Functions | Event-driven, variable load | Cold start: 100ms-2s | Per-invocation + duration |
|
|
33
|
+
| Edge Functions (Cloudflare Workers, Vercel Edge) | Low latency, geographically distributed | < 50ms (no cold start) | Per-request |
|
|
34
|
+
| Long-running containers (ECS, Cloud Run) | Steady load, WebSockets, > 15 min tasks | No cold start | Per-second |
|
|
35
|
+
|
|
36
|
+
**Serverless fits when**:
|
|
37
|
+
|
|
38
|
+
- Traffic is bursty or unpredictable
|
|
39
|
+
- Functions complete in < 30 seconds
|
|
40
|
+
- Stateless request/response pattern
|
|
41
|
+
- Event-driven processing (queue consumers, webhooks)
|
|
42
|
+
|
|
43
|
+
**Serverless doesn't fit when**:
|
|
44
|
+
|
|
45
|
+
- Persistent connections (WebSockets, long polling)
|
|
46
|
+
- Heavy computation (> 15 min)
|
|
47
|
+
- Steady high-throughput workloads (always-on is cheaper)
|
|
48
|
+
- Complex local state management
|
|
49
|
+
|
|
50
|
+
### Step 2 — Design Functions
|
|
51
|
+
|
|
52
|
+
**Single-responsibility**: one function per operation
|
|
53
|
+
|
|
54
|
+
```
|
|
55
|
+
api/
|
|
56
|
+
├── users/
|
|
57
|
+
│ ├── create.ts (POST /users)
|
|
58
|
+
│ ├── get.ts (GET /users/:id)
|
|
59
|
+
│ └── list.ts (GET /users)
|
|
60
|
+
├── orders/
|
|
61
|
+
│ ├── create.ts (POST /orders)
|
|
62
|
+
│ └── process.ts (SQS consumer)
|
|
63
|
+
└── shared/
|
|
64
|
+
├── db.ts (connection pooling)
|
|
65
|
+
└── auth.ts (token validation)
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Rules**:
|
|
69
|
+
|
|
70
|
+
- Keep functions small (< 200 lines)
|
|
71
|
+
- Initialize expensive resources outside the handler (connection pools, SDK clients)
|
|
72
|
+
- Handle one event type per function
|
|
73
|
+
- Return early for validation failures
|
|
74
|
+
|
|
75
|
+
### Step 3 — Optimize Cold Starts
|
|
76
|
+
|
|
77
|
+
**Cold start happens when**:
|
|
78
|
+
|
|
79
|
+
- First invocation after deployment
|
|
80
|
+
- Scaling up to handle more concurrent requests
|
|
81
|
+
- Function hasn't been invoked for ~15 minutes
|
|
82
|
+
|
|
83
|
+
**Optimization strategies**:
|
|
84
|
+
| Strategy | Impact |
|
|
85
|
+
|----------|--------|
|
|
86
|
+
| Smaller bundle size | Fewer bytes to load = faster start |
|
|
87
|
+
| Fewer dependencies | Less initialization code |
|
|
88
|
+
| Lazy-load non-critical modules | Only import what the handler needs |
|
|
89
|
+
| Provisioned concurrency | Pre-warm instances (costs more) |
|
|
90
|
+
| Edge functions | No cold start (Cloudflare Workers) |
|
|
91
|
+
| Choose lighter runtimes | Node.js > Python > Java for cold start |
|
|
92
|
+
|
|
93
|
+
**Connection pooling**:
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
// Initialize OUTSIDE the handler (reused across invocations)
|
|
97
|
+
const pool = new Pool({ connectionString: process.env.DATABASE_URL, max: 1 });
|
|
98
|
+
|
|
99
|
+
export async function handler(event) {
|
|
100
|
+
const client = await pool.connect();
|
|
101
|
+
try {
|
|
102
|
+
// use client
|
|
103
|
+
} finally {
|
|
104
|
+
client.release(); // return to pool, don't close
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Step 4 — Event-Driven Patterns
|
|
110
|
+
|
|
111
|
+
| Pattern | Use Case | Services |
|
|
112
|
+
| -------------------- | -------------------------------------- | ---------------------------------- |
|
|
113
|
+
| Queue consumer | Decoupled async processing | SQS, Cloud Tasks |
|
|
114
|
+
| Fan-out | Parallel processing of events | SNS + Lambda, EventBridge |
|
|
115
|
+
| Saga / Step Function | Multi-step workflows with compensation | Step Functions, Temporal |
|
|
116
|
+
| CRON | Scheduled tasks | EventBridge rules, Cloud Scheduler |
|
|
117
|
+
| Stream processing | Real-time event processing | Kinesis, Kafka |
|
|
118
|
+
| Webhook receiver | Third-party event handling | API Gateway + Lambda |
|
|
119
|
+
|
|
120
|
+
**Error handling in async functions**:
|
|
121
|
+
|
|
122
|
+
- Use dead-letter queues (DLQ) for failed messages
|
|
123
|
+
- Implement idempotency (same message processed twice = same result)
|
|
124
|
+
- Retry with exponential backoff
|
|
125
|
+
- Alert on DLQ depth
|
|
126
|
+
|
|
127
|
+
### Step 5 — Manage Costs
|
|
128
|
+
|
|
129
|
+
**Cost drivers**:
|
|
130
|
+
|
|
131
|
+
- Number of invocations
|
|
132
|
+
- Execution duration × memory allocated
|
|
133
|
+
- Data transfer (egress)
|
|
134
|
+
- Provisioned concurrency (if used)
|
|
135
|
+
|
|
136
|
+
**Optimization**:
|
|
137
|
+
|
|
138
|
+
- Right-size memory (sometimes more memory = faster = cheaper)
|
|
139
|
+
- Minimize execution time (return early, batch operations)
|
|
140
|
+
- Use reserved concurrency to cap costs
|
|
141
|
+
- Compress responses to reduce data transfer
|
|
142
|
+
- Monitor with cost allocation tags
|
|
143
|
+
|
|
144
|
+
## Output Format
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
## Architecture
|
|
148
|
+
[serverless design with function layout and event flows]
|
|
149
|
+
|
|
150
|
+
## Implementation
|
|
151
|
+
[function code with cold start optimization]
|
|
152
|
+
|
|
153
|
+
## Infrastructure
|
|
154
|
+
[IaC for deployment (CDK, Terraform, serverless.yml)]
|
|
155
|
+
|
|
156
|
+
## Cost Estimate
|
|
157
|
+
[projected costs based on expected traffic]
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## Examples
|
|
161
|
+
|
|
162
|
+
**User**: "Build a serverless API for our mobile app"
|
|
163
|
+
|
|
164
|
+
**Response approach**: API Gateway + Lambda per endpoint. JWT auth at the gateway. DynamoDB or RDS Proxy for data. Optimize cold starts with minimal dependencies. Show CDK or Serverless Framework config.
|
|
165
|
+
|
|
166
|
+
**User**: "Our Lambda functions have 3-second cold starts"
|
|
167
|
+
|
|
168
|
+
**Response approach**: Audit bundle size and dependencies. Lazy-load non-critical modules. Move initialization outside handler. Consider provisioned concurrency for latency-sensitive functions. Evaluate edge functions for the hottest paths.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
````markdown
|
|
2
|
+
---
|
|
3
|
+
inclusion: manual
|
|
4
|
+
name: skill-creator
|
|
5
|
+
description: Create, test, improve, and package portable AI skills using the Agent Skills SKILL.md format across Claude Code, Codex, and GitHub Copilot, with Gemini conversion when needed. Use this when the user wants to build, repair, benchmark, or iterate on a reusable skill package.
|
|
6
|
+
license: Apache-2.0
|
|
7
|
+
metadata:
|
|
8
|
+
author: cubis-foundry
|
|
9
|
+
version: "1.0"
|
|
10
|
+
compatibility: Claude Code, Codex, GitHub Copilot
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Skill Creator
|
|
14
|
+
|
|
15
|
+
## Purpose
|
|
16
|
+
|
|
17
|
+
Create and improve reusable AI skill packages with a human-in-the-loop loop: define the skill, draft it, test it with the skill enabled, evaluate results qualitatively and quantitatively, rewrite based on signal, and repeat until the package is good enough to scale.
|
|
18
|
+
|
|
19
|
+
## When to Use
|
|
20
|
+
|
|
21
|
+
- The user wants to create a new skill package under `workflows/skills/<name>`.
|
|
22
|
+
- The user wants to repair or modernize an existing `SKILL.md` package.
|
|
23
|
+
- The user wants evals, benchmarks, or review tooling for a skill package.
|
|
24
|
+
- The user wants to package one canonical skill for Claude Code, Codex, GitHub Copilot, and optionally Gemini.
|
|
25
|
+
|
|
26
|
+
## Instructions
|
|
27
|
+
|
|
28
|
+
1. Decide what the skill should do before writing files. Confirm the task boundary, activation phrases, expected outputs, supported platforms, and whether the skill needs objective evals.
|
|
29
|
+
|
|
30
|
+
2. Write a first draft of the skill package. Keep one canonical `SKILL.md` as the source of truth. Add sidecars only when they reduce prompt bloat or remove repeated work.
|
|
31
|
+
|
|
32
|
+
3. Create a small test set first. Add a few realistic prompts to `evals/` and keep them representative of the skill's actual use cases, not just ideal happy paths.
|
|
33
|
+
|
|
34
|
+
4. Run the skill with the skill enabled on the test prompts. Prefer Claude with access to the skill for the first qualitative pass so you can inspect whether the instructions actually trigger the right behavior.
|
|
35
|
+
|
|
36
|
+
5. While runs are happening, draft or refine the quantitative evals. If quantitative evals already exist, review them, keep the ones that are still useful, and adjust only the ones that no longer match the intended behavior.
|
|
37
|
+
|
|
38
|
+
6. Explain the evals to the user before over-optimizing against them. The user should understand what each prompt, assertion, or benchmark is measuring and what a pass or fail means.
|
|
39
|
+
|
|
40
|
+
7. Review the outputs both qualitatively and quantitatively. Use `eval-viewer/generate_review.py` so the user can inspect side-by-side outputs and benchmark summaries instead of relying only on raw JSON.
|
|
41
|
+
|
|
42
|
+
8. Rewrite the skill based on user feedback and the strongest benchmark signal. Fix root causes, not just individual failing prompts, and treat obvious flaws in the quantitative results as design feedback for the skill.
|
|
43
|
+
|
|
44
|
+
9. Repeat the loop until the results are stable enough. Keep iterating until the user is satisfied or the skill behavior has clearly plateaued.
|
|
45
|
+
|
|
46
|
+
10. Expand the test set and rerun at larger scale only after the small-set loop is working. Do not scale weak evals or unclear instructions.
|
|
47
|
+
|
|
48
|
+
11. Use the right script for the job:
|
|
49
|
+
- `scripts/run_loop.py` is the original Claude-oriented optimization loop built on `run_eval.py`.
|
|
50
|
+
- `scripts/run_loop_universal.py` is the portable loop built on `run_eval_universal.py` and `platform_adapter.py`.
|
|
51
|
+
- Prefer the universal loop when the package is intended to stay portable across Claude Code, Codex, Copilot, and Gemini-style workflows.
|
|
52
|
+
|
|
53
|
+
## Output Format
|
|
54
|
+
|
|
55
|
+
Produce a canonical skill package with:
|
|
56
|
+
|
|
57
|
+
- a valid root `SKILL.md`
|
|
58
|
+
- any needed `references/`, `scripts/`, `assets/`, `evals/`, and `eval-viewer/` files
|
|
59
|
+
- a small initial prompt/eval set
|
|
60
|
+
- review outputs the user can inspect
|
|
61
|
+
- clear next-step changes when another iteration is required
|
|
62
|
+
|
|
63
|
+
## References
|
|
64
|
+
|
|
65
|
+
Load only what the current step needs.
|
|
66
|
+
|
|
67
|
+
| File | Load when |
|
|
68
|
+
| --- | --- |
|
|
69
|
+
| `references/platform-formats.md` | You need deployment or compatibility rules for Claude Code, Codex, Copilot, or Gemini conversion. |
|
|
70
|
+
| `references/schemas.md` | You need the JSON structure for evals, grading artifacts, or review payloads. |
|
|
71
|
+
|
|
72
|
+
## Scripts
|
|
73
|
+
|
|
74
|
+
Use the existing tooling instead of re-inventing the loop:
|
|
75
|
+
|
|
76
|
+
- `scripts/run_eval.py` for the original Claude-oriented eval pass
|
|
77
|
+
- `scripts/run_loop.py` for iterative improvement on the original eval path
|
|
78
|
+
- `scripts/run_eval_universal.py` for the cross-platform eval path
|
|
79
|
+
- `scripts/run_loop_universal.py` for the portable iterative loop
|
|
80
|
+
- `scripts/aggregate_benchmark.py` to summarize quantitative benchmark results
|
|
81
|
+
- `eval-viewer/generate_review.py` to generate a reviewable output bundle for the user
|
|
82
|
+
- `scripts/package_skill.py` when the skill is ready to distribute
|
|
83
|
+
- `scripts/platform_adapter.py` when Gemini conversion or cross-platform deployment is required
|
|
84
|
+
|
|
85
|
+
## Examples
|
|
86
|
+
|
|
87
|
+
- "Create a skill for reviewing Flutter Riverpod code and set up a first batch of eval prompts."
|
|
88
|
+
- "Repair this skill package, rerun the viewer, and help me interpret the benchmark regressions."
|
|
89
|
+
- "Turn this prompt workflow into a reusable skill and iterate until the user-approved eval set passes."
|
|
90
|
+
````
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skill-creator
|
|
3
|
+
description: Create, test, improve, and package portable AI skills using the Agent Skills SKILL.md format across Claude Code, Codex, and GitHub Copilot, with Gemini conversion when needed. Use this when the user wants to build, repair, benchmark, or iterate on a reusable skill package.
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
metadata:
|
|
6
|
+
author: cubis-foundry
|
|
7
|
+
version: "1.0"
|
|
8
|
+
compatibility: Claude Code, Codex, GitHub Copilot
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# Skill Creator
|
|
12
|
+
|
|
13
|
+
## Purpose
|
|
14
|
+
|
|
15
|
+
Create and improve reusable AI skill packages with a human-in-the-loop loop: define the skill, draft it, test it with the skill enabled, evaluate results qualitatively and quantitatively, rewrite based on signal, and repeat until the package is good enough to scale.
|
|
16
|
+
|
|
17
|
+
## When to Use
|
|
18
|
+
|
|
19
|
+
- The user wants to create a new skill package under `workflows/skills/<name>`.
|
|
20
|
+
- The user wants to repair or modernize an existing `SKILL.md` package.
|
|
21
|
+
- The user wants evals, benchmarks, or review tooling for a skill package.
|
|
22
|
+
- The user wants to package one canonical skill for Claude Code, Codex, GitHub Copilot, and optionally Gemini.
|
|
23
|
+
|
|
24
|
+
## Instructions
|
|
25
|
+
|
|
26
|
+
1. Decide what the skill should do before writing files. Confirm the task boundary, activation phrases, expected outputs, supported platforms, and whether the skill needs objective evals.
|
|
27
|
+
|
|
28
|
+
2. Write a first draft of the skill package. Keep one canonical `SKILL.md` as the source of truth. Add sidecars only when they reduce prompt bloat or remove repeated work.
|
|
29
|
+
|
|
30
|
+
3. Create a small test set first. Add a few realistic prompts to `evals/` and keep them representative of the skill's actual use cases, not just ideal happy paths.
|
|
31
|
+
|
|
32
|
+
4. Run the skill with the skill enabled on the test prompts. Prefer Claude with access to the skill for the first qualitative pass so you can inspect whether the instructions actually trigger the right behavior.
|
|
33
|
+
|
|
34
|
+
5. While runs are happening, draft or refine the quantitative evals. If quantitative evals already exist, review them, keep the ones that are still useful, and adjust only the ones that no longer match the intended behavior.
|
|
35
|
+
|
|
36
|
+
6. Explain the evals to the user before over-optimizing against them. The user should understand what each prompt, assertion, or benchmark is measuring and what a pass or fail means.
|
|
37
|
+
|
|
38
|
+
7. Review the outputs both qualitatively and quantitatively. Use `eval-viewer/generate_review.py` so the user can inspect side-by-side outputs and benchmark summaries instead of relying only on raw JSON.
|
|
39
|
+
|
|
40
|
+
8. Rewrite the skill based on user feedback and the strongest benchmark signal. Fix root causes, not just individual failing prompts, and treat obvious flaws in the quantitative results as design feedback for the skill.
|
|
41
|
+
|
|
42
|
+
9. Repeat the loop until the results are stable enough. Keep iterating until the user is satisfied or the skill behavior has clearly plateaued.
|
|
43
|
+
|
|
44
|
+
10. Expand the test set and rerun at larger scale only after the small-set loop is working. Do not scale weak evals or unclear instructions.
|
|
45
|
+
|
|
46
|
+
11. Use the right script for the job:
|
|
47
|
+
- `scripts/run_loop.py` is the original Claude-oriented optimization loop built on `run_eval.py`.
|
|
48
|
+
- `scripts/run_loop_universal.py` is the portable loop built on `run_eval_universal.py` and `platform_adapter.py`.
|
|
49
|
+
- Prefer the universal loop when the package is intended to stay portable across Claude Code, Codex, Copilot, and Gemini-style workflows.
|
|
50
|
+
|
|
51
|
+
## Output Format
|
|
52
|
+
|
|
53
|
+
Produce a canonical skill package with:
|
|
54
|
+
|
|
55
|
+
- a valid root `SKILL.md`
|
|
56
|
+
- any needed `references/`, `scripts/`, `assets/`, `evals/`, and `eval-viewer/` files
|
|
57
|
+
- a small initial prompt/eval set
|
|
58
|
+
- review outputs the user can inspect
|
|
59
|
+
- clear next-step changes when another iteration is required
|
|
60
|
+
|
|
61
|
+
## References
|
|
62
|
+
|
|
63
|
+
Load only what the current step needs.
|
|
64
|
+
|
|
65
|
+
| File | Load when |
|
|
66
|
+
| --- | --- |
|
|
67
|
+
| `references/platform-formats.md` | You need deployment or compatibility rules for Claude Code, Codex, Copilot, or Gemini conversion. |
|
|
68
|
+
| `references/schemas.md` | You need the JSON structure for evals, grading artifacts, or review payloads. |
|
|
69
|
+
|
|
70
|
+
## Scripts
|
|
71
|
+
|
|
72
|
+
Use the existing tooling instead of re-inventing the loop:
|
|
73
|
+
|
|
74
|
+
- `scripts/run_eval.py` for the original Claude-oriented eval pass
|
|
75
|
+
- `scripts/run_loop.py` for iterative improvement on the original eval path
|
|
76
|
+
- `scripts/run_eval_universal.py` for the cross-platform eval path
|
|
77
|
+
- `scripts/run_loop_universal.py` for the portable iterative loop
|
|
78
|
+
- `scripts/aggregate_benchmark.py` to summarize quantitative benchmark results
|
|
79
|
+
- `eval-viewer/generate_review.py` to generate a reviewable output bundle for the user
|
|
80
|
+
- `scripts/package_skill.py` when the skill is ready to distribute
|
|
81
|
+
- `scripts/platform_adapter.py` when Gemini conversion or cross-platform deployment is required
|
|
82
|
+
|
|
83
|
+
## Examples
|
|
84
|
+
|
|
85
|
+
- "Create a skill for reviewing Flutter Riverpod code and set up a first batch of eval prompts."
|
|
86
|
+
- "Repair this skill package, rerun the viewer, and help me interpret the benchmark regressions."
|
|
87
|
+
- "Turn this prompt workflow into a reusable skill and iterate until the user-approved eval set passes."
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# Platform Format Reference
|
|
2
|
+
|
|
3
|
+
Detailed file format specifications for each supported platform.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Claude Code — SKILL.md
|
|
8
|
+
|
|
9
|
+
**Location:** `~/.claude/skills/<skill-name>/SKILL.md`
|
|
10
|
+
**Install:** `npx skills add <repo> --skill <name>`
|
|
11
|
+
**Trigger:** Description-based; Claude reads description and decides whether to load the full skill
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
---
|
|
15
|
+
name: my-skill
|
|
16
|
+
description: One paragraph. Include what it does AND when to trigger. Be explicit.
|
|
17
|
+
compatibility:
|
|
18
|
+
tools: [bash, python] # optional
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Skill Title
|
|
22
|
+
|
|
23
|
+
Body instructions here. Imperative form. Explain the why.
|
|
24
|
+
|
|
25
|
+
## When to Use
|
|
26
|
+
## Instructions
|
|
27
|
+
## Output Format
|
|
28
|
+
## Examples
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Tips:**
|
|
32
|
+
- Keep SKILL.md under 500 lines
|
|
33
|
+
- Put large docs in `references/` and point to them from SKILL.md
|
|
34
|
+
- Scripts in `scripts/` can run without being loaded into context
|
|
35
|
+
- Description is the #1 trigger — write it to be "pushy"
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## OpenAI Codex — AGENTS.md
|
|
40
|
+
|
|
41
|
+
**Location:** Repo root (`AGENTS.md`) or `.codex/instructions.md`
|
|
42
|
+
**Auto-detection:** Codex looks for `AGENTS.md` at the working directory root
|
|
43
|
+
**Trigger:** Loaded at session start; always active for that session
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
# Agent Instructions: [Skill Name]
|
|
47
|
+
|
|
48
|
+
## Purpose
|
|
49
|
+
Brief description of what this agent configuration enables.
|
|
50
|
+
|
|
51
|
+
## Behavior Rules
|
|
52
|
+
Numbered or bulleted rules. Always include the reason behind each rule.
|
|
53
|
+
|
|
54
|
+
- Always X because Y
|
|
55
|
+
- When you see Z, do W (reason: ...)
|
|
56
|
+
|
|
57
|
+
## Output Format
|
|
58
|
+
Describe the expected structure of outputs.
|
|
59
|
+
Specify file names, formats, encodings where relevant.
|
|
60
|
+
|
|
61
|
+
## Limitations
|
|
62
|
+
What this agent should NOT do.
|
|
63
|
+
What to do if the user asks for something outside scope.
|
|
64
|
+
|
|
65
|
+
## References
|
|
66
|
+
- See `docs/style-guide.md` for formatting rules
|
|
67
|
+
- See `schemas/output.json` for output structure
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
**Tips:**
|
|
71
|
+
- Codex respects Markdown headers as logical sections
|
|
72
|
+
- Reference other files with relative paths — Codex can read them
|
|
73
|
+
- Keep the main file focused; delegate detail to referenced docs
|
|
74
|
+
- Subagent spawning is native in Codex
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## GitHub Copilot — copilot-instructions.md
|
|
79
|
+
|
|
80
|
+
**Location:** `.github/copilot-instructions.md`
|
|
81
|
+
**Scope:** Workspace-scoped; applies to all Copilot interactions in the repo
|
|
82
|
+
**Trigger:** Always active — no triggering needed or possible
|
|
83
|
+
|
|
84
|
+
```markdown
|
|
85
|
+
# GitHub Copilot Instructions
|
|
86
|
+
|
|
87
|
+
## [Skill/Topic Name]
|
|
88
|
+
|
|
89
|
+
When working on [context/file type/task], follow these rules:
|
|
90
|
+
|
|
91
|
+
1. [Rule with brief reason]
|
|
92
|
+
2. [Rule with brief reason]
|
|
93
|
+
|
|
94
|
+
### Output Format
|
|
95
|
+
[Description of expected output structure]
|
|
96
|
+
|
|
97
|
+
### Avoid
|
|
98
|
+
- [Anti-pattern 1]
|
|
99
|
+
- [Anti-pattern 2]
|
|
100
|
+
|
|
101
|
+
## [Another Topic]
|
|
102
|
+
...
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
**Tips:**
|
|
106
|
+
- Instructions are always active — don't make them too restrictive globally
|
|
107
|
+
- Use H2 sections to scope rules to specific contexts
|
|
108
|
+
- Keep total file under ~1000 tokens for reliability
|
|
109
|
+
- No dynamic loading; no scripts; just persistent context
|
|
110
|
+
- Works in VS Code, JetBrains, GitHub.com, and Copilot Chat
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Google Gemini Code Assist / Project IDX — GEMINI.md
|
|
115
|
+
|
|
116
|
+
**Location:** `GEMINI.md` (project root) or `.idx/airules.md`
|
|
117
|
+
**Enterprise:** `codeassist.yaml` for org-wide rules (Google Cloud)
|
|
118
|
+
**Trigger:** Loaded at session start; always active for the project
|
|
119
|
+
|
|
120
|
+
```markdown
|
|
121
|
+
# Gemini Code Assist Rules: [Skill Name]
|
|
122
|
+
|
|
123
|
+
## When These Rules Apply
|
|
124
|
+
[Describe the context: specific file types, tasks, user phrases]
|
|
125
|
+
|
|
126
|
+
## Instructions
|
|
127
|
+
[Steps with reasoning. Imperative form.]
|
|
128
|
+
|
|
129
|
+
## Expected Output
|
|
130
|
+
[Format, file types, naming conventions]
|
|
131
|
+
|
|
132
|
+
## Do Not
|
|
133
|
+
[Explicit exclusions]
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**For Project IDX — .idx/dev.nix:**
|
|
137
|
+
```nix
|
|
138
|
+
{ pkgs, ... }: {
|
|
139
|
+
packages = [ pkgs.python311 pkgs.nodejs ];
|
|
140
|
+
|
|
141
|
+
idx.extensions = [
|
|
142
|
+
"ms-python.python"
|
|
143
|
+
"esbenp.prettier-vscode"
|
|
144
|
+
];
|
|
145
|
+
|
|
146
|
+
idx.workspace.onCreate = {
|
|
147
|
+
npm-install = "npm install";
|
|
148
|
+
};
|
|
149
|
+
|
|
150
|
+
idx.previews = {
|
|
151
|
+
enable = true;
|
|
152
|
+
previews = {
|
|
153
|
+
web = {
|
|
154
|
+
command = ["npm" "run" "dev"];
|
|
155
|
+
manager = "web";
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**Tips:**
|
|
163
|
+
- `GEMINI.md` is read at session start — keep it concise
|
|
164
|
+
- Project IDX uses Nix for reproducible environments; document dependencies clearly
|
|
165
|
+
- Gemini Code Assist in Google Cloud Workstations supports org-level `codeassist.yaml`
|
|
166
|
+
- IDX AI rules are per-project; no global skill loading
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## Cross-Platform Conversion Cheatsheet
|
|
171
|
+
|
|
172
|
+
| Concept | Claude Code | Codex | Copilot | Gemini/IDX |
|
|
173
|
+
|---|---|---|---|---|
|
|
174
|
+
| Main file | `SKILL.md` | `AGENTS.md` | `.github/copilot-instructions.md` | `GEMINI.md` |
|
|
175
|
+
| Trigger | Description field | Session start | Always active | Session start |
|
|
176
|
+
| Scripts | `scripts/` folder | Reference in AGENTS.md | Not supported | Not supported |
|
|
177
|
+
| References | `references/` folder | Relative file paths | Not supported | Not supported |
|
|
178
|
+
| Dynamic loading | Yes | Partial | No | No |
|
|
179
|
+
| Subagents | Via skill system | Native | No | No |
|
|
180
|
+
| Env config | N/A | `.codex/` | N/A | `.idx/dev.nix` |
|
|
181
|
+
|