@mohanscodex/spectra-code 0.4.8 → 0.5.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 +42 -2
- package/dist/package.json +8 -5
- package/dist/src/agents/definitions/build.d.ts +3 -0
- package/dist/src/agents/definitions/build.d.ts.map +1 -0
- package/dist/src/agents/definitions/build.js +51 -0
- package/dist/src/agents/definitions/build.js.map +1 -0
- package/dist/src/agents/definitions/debug.d.ts +3 -0
- package/dist/src/agents/definitions/debug.d.ts.map +1 -0
- package/dist/src/agents/definitions/debug.js +45 -0
- package/dist/src/agents/definitions/debug.js.map +1 -0
- package/dist/src/agents/definitions/explore.d.ts +3 -0
- package/dist/src/agents/definitions/explore.d.ts.map +1 -0
- package/dist/src/agents/definitions/explore.js +34 -0
- package/dist/src/agents/definitions/explore.js.map +1 -0
- package/dist/src/agents/definitions/index.d.ts +5 -0
- package/dist/src/agents/definitions/index.d.ts.map +1 -0
- package/dist/src/agents/definitions/index.js +19 -0
- package/dist/src/agents/definitions/index.js.map +1 -0
- package/dist/src/agents/definitions/plan.d.ts +3 -0
- package/dist/src/agents/definitions/plan.d.ts.map +1 -0
- package/dist/src/agents/definitions/plan.js +44 -0
- package/dist/src/agents/definitions/plan.js.map +1 -0
- package/dist/src/agents/definitions/title.d.ts +3 -0
- package/dist/src/agents/definitions/title.d.ts.map +1 -0
- package/dist/src/agents/definitions/title.js +34 -0
- package/dist/src/agents/definitions/title.js.map +1 -0
- package/dist/src/agents/index.d.ts +6 -0
- package/dist/src/agents/index.d.ts.map +1 -0
- package/dist/src/agents/index.js +10 -0
- package/dist/src/agents/index.js.map +1 -0
- package/dist/src/agents/types.d.ts +15 -0
- package/dist/src/agents/types.d.ts.map +1 -0
- package/dist/src/agents/types.js +2 -0
- package/dist/src/agents/types.js.map +1 -0
- package/dist/src/cli.js +2 -2
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/session.js +1 -1
- package/dist/src/commands/session.js.map +1 -1
- package/dist/src/integrations/acp/server.js +1 -1
- package/dist/src/integrations/acp/server.js.map +1 -1
- package/dist/src/services/prompt-history.d.ts +32 -0
- package/dist/src/services/prompt-history.d.ts.map +1 -0
- package/dist/src/services/prompt-history.js +144 -0
- package/dist/src/services/prompt-history.js.map +1 -0
- package/dist/src/services/snapshot-manager.d.ts +32 -32
- package/dist/src/services/snapshot-manager.d.ts.map +1 -1
- package/dist/src/services/snapshot-manager.js +308 -155
- package/dist/src/services/snapshot-manager.js.map +1 -1
- package/dist/src/tools/edit.d.ts.map +1 -1
- package/dist/src/tools/edit.js +5 -22
- package/dist/src/tools/edit.js.map +1 -1
- package/dist/src/tools/glob.d.ts.map +1 -1
- package/dist/src/tools/glob.js +2 -1
- package/dist/src/tools/glob.js.map +1 -1
- package/dist/src/tools/grep.js +2 -2
- package/dist/src/tools/grep.js.map +1 -1
- package/dist/src/tools/index.d.ts +5 -0
- package/dist/src/tools/index.d.ts.map +1 -1
- package/dist/src/tools/index.js +30 -1
- package/dist/src/tools/index.js.map +1 -1
- package/dist/src/tools/task.js +1 -1
- package/dist/src/tools/task.js.map +1 -1
- package/dist/src/tools/write.d.ts.map +1 -1
- package/dist/src/tools/write.js +7 -4
- package/dist/src/tools/write.js.map +1 -1
- package/dist/src/tui/app-constants.js +1 -1
- package/dist/src/tui/app-constants.js.map +1 -1
- package/dist/src/tui/app.d.ts.map +1 -1
- package/dist/src/tui/app.js +35 -15
- package/dist/src/tui/app.js.map +1 -1
- package/dist/src/tui/commands.d.ts +15 -0
- package/dist/src/tui/commands.d.ts.map +1 -1
- package/dist/src/tui/commands.js +252 -1
- package/dist/src/tui/commands.js.map +1 -1
- package/dist/src/tui/components/chat-area.d.ts.map +1 -1
- package/dist/src/tui/components/chat-area.js +1 -1
- package/dist/src/tui/components/chat-area.js.map +1 -1
- package/dist/src/tui/components/message.d.ts.map +1 -1
- package/dist/src/tui/components/message.js +79 -4
- package/dist/src/tui/components/message.js.map +1 -1
- package/dist/src/tui/hooks/use-agent.d.ts.map +1 -1
- package/dist/src/tui/hooks/use-agent.js +17 -4
- package/dist/src/tui/hooks/use-agent.js.map +1 -1
- package/dist/src/tui/hooks/use-app-keyboard.d.ts +4 -5
- package/dist/src/tui/hooks/use-app-keyboard.d.ts.map +1 -1
- package/dist/src/tui/hooks/use-app-keyboard.js +23 -24
- package/dist/src/tui/hooks/use-app-keyboard.js.map +1 -1
- package/dist/src/tui/hooks/use-chat-submit.d.ts +2 -2
- package/dist/src/tui/hooks/use-chat-submit.d.ts.map +1 -1
- package/dist/src/tui/hooks/use-chat-submit.js +143 -20
- package/dist/src/tui/hooks/use-chat-submit.js.map +1 -1
- package/dist/src/tui/hooks/use-revert.d.ts +3 -5
- package/dist/src/tui/hooks/use-revert.d.ts.map +1 -1
- package/dist/src/tui/hooks/use-revert.js +83 -34
- package/dist/src/tui/hooks/use-revert.js.map +1 -1
- package/dist/src/tui/hooks/use-title-agent.d.ts +13 -0
- package/dist/src/tui/hooks/use-title-agent.d.ts.map +1 -0
- package/dist/src/tui/hooks/use-title-agent.js +50 -0
- package/dist/src/tui/hooks/use-title-agent.js.map +1 -0
- package/dist/src/tui/prompt-bar.d.ts.map +1 -1
- package/dist/src/tui/prompt-bar.js +27 -33
- package/dist/src/tui/prompt-bar.js.map +1 -1
- package/dist/src/tui/theme.d.ts +2 -0
- package/dist/src/tui/theme.d.ts.map +1 -1
- package/dist/src/tui/theme.js +2 -0
- package/dist/src/tui/theme.js.map +1 -1
- package/dist/src/tui/types.d.ts +5 -0
- package/dist/src/tui/types.d.ts.map +1 -1
- package/dist/src/tui/ui/agent-switcher.js +1 -1
- package/dist/src/tui/ui/agent-switcher.js.map +1 -1
- package/dist/src/tui/ui/cost-dialog.d.ts +14 -0
- package/dist/src/tui/ui/cost-dialog.d.ts.map +1 -0
- package/dist/src/tui/ui/cost-dialog.js +28 -0
- package/dist/src/tui/ui/cost-dialog.js.map +1 -0
- package/dist/src/tui/ui/debug-dialog.js +1 -1
- package/dist/src/tui/ui/debug-dialog.js.map +1 -1
- package/dist/src/tui/ui/session-list.js +1 -1
- package/dist/src/tui/ui/session-list.js.map +1 -1
- package/dist/src/tui/utils/terminal-title.d.ts +3 -0
- package/dist/src/tui/utils/terminal-title.d.ts.map +1 -0
- package/dist/src/tui/utils/terminal-title.js +14 -0
- package/dist/src/tui/utils/terminal-title.js.map +1 -0
- package/dist/src/tui/utils/version.d.ts +1 -1
- package/dist/src/tui/utils/version.d.ts.map +1 -1
- package/dist/src/tui/utils/version.js +4 -22
- package/dist/src/tui/utils/version.js.map +1 -1
- package/dist/src/utils/paths.d.ts +1 -0
- package/dist/src/utils/paths.d.ts.map +1 -1
- package/dist/src/utils/paths.js +13 -0
- package/dist/src/utils/paths.js.map +1 -1
- package/package.json +9 -6
- package/skills/REQUESTS.md +36 -0
- package/skills/architecture/ABOUT.md +20 -0
- package/skills/architecture/preserving-productive-tensions/SKILL.md +152 -0
- package/skills/aspnet-core/LICENSE.txt +202 -0
- package/skills/aspnet-core/SKILL.md +61 -0
- package/skills/aspnet-core/agents/openai.yaml +5 -0
- package/skills/aspnet-core/assets/dotnet-logo.png +0 -0
- package/skills/aspnet-core/references/_sections.md +40 -0
- package/skills/aspnet-core/references/apis-minimal-and-controllers.md +81 -0
- package/skills/aspnet-core/references/data-state-and-services.md +69 -0
- package/skills/aspnet-core/references/program-and-pipeline.md +103 -0
- package/skills/aspnet-core/references/realtime-grpc-and-background-work.md +58 -0
- package/skills/aspnet-core/references/security-and-identity.md +75 -0
- package/skills/aspnet-core/references/source-map.md +43 -0
- package/skills/aspnet-core/references/stack-selection.md +63 -0
- package/skills/aspnet-core/references/testing-performance-and-operations.md +92 -0
- package/skills/aspnet-core/references/ui-blazor.md +53 -0
- package/skills/aspnet-core/references/ui-mvc.md +56 -0
- package/skills/aspnet-core/references/ui-razor-pages.md +55 -0
- package/skills/aspnet-core/references/versioning-and-upgrades.md +51 -0
- package/skills/chatgpt-apps/LICENSE.txt +201 -0
- package/skills/chatgpt-apps/SKILL.md +320 -0
- package/skills/chatgpt-apps/agents/openai.yaml +13 -0
- package/skills/chatgpt-apps/references/app-archetypes.md +132 -0
- package/skills/chatgpt-apps/references/apps-sdk-docs-workflow.md +135 -0
- package/skills/chatgpt-apps/references/interactive-state-sync-patterns.md +113 -0
- package/skills/chatgpt-apps/references/repo-contract-and-validation.md +93 -0
- package/skills/chatgpt-apps/references/search-fetch-standard.md +67 -0
- package/skills/chatgpt-apps/references/upstream-example-workflow.md +79 -0
- package/skills/chatgpt-apps/references/window-openai-patterns.md +70 -0
- package/skills/chatgpt-apps/scripts/scaffold_node_ext_apps.mjs +606 -0
- package/skills/cloudflare-deploy/LICENSE.txt +201 -0
- package/skills/cloudflare-deploy/SKILL.md +224 -0
- package/skills/cloudflare-deploy/agents/openai.yaml +6 -0
- package/skills/cloudflare-deploy/assets/cloudflare-small.svg +3 -0
- package/skills/cloudflare-deploy/assets/cloudflare.png +0 -0
- package/skills/cloudflare-deploy/references/agents-sdk/README.md +89 -0
- package/skills/cloudflare-deploy/references/agents-sdk/api.md +190 -0
- package/skills/cloudflare-deploy/references/agents-sdk/configuration.md +182 -0
- package/skills/cloudflare-deploy/references/agents-sdk/gotchas.md +158 -0
- package/skills/cloudflare-deploy/references/agents-sdk/patterns.md +192 -0
- package/skills/cloudflare-deploy/references/ai-gateway/README.md +175 -0
- package/skills/cloudflare-deploy/references/ai-gateway/configuration.md +111 -0
- package/skills/cloudflare-deploy/references/ai-gateway/dynamic-routing.md +82 -0
- package/skills/cloudflare-deploy/references/ai-gateway/features.md +96 -0
- package/skills/cloudflare-deploy/references/ai-gateway/sdk-integration.md +114 -0
- package/skills/cloudflare-deploy/references/ai-gateway/troubleshooting.md +88 -0
- package/skills/cloudflare-deploy/references/ai-search/README.md +138 -0
- package/skills/cloudflare-deploy/references/ai-search/api.md +87 -0
- package/skills/cloudflare-deploy/references/ai-search/configuration.md +88 -0
- package/skills/cloudflare-deploy/references/ai-search/gotchas.md +81 -0
- package/skills/cloudflare-deploy/references/ai-search/patterns.md +85 -0
- package/skills/cloudflare-deploy/references/analytics-engine/README.md +92 -0
- package/skills/cloudflare-deploy/references/analytics-engine/api.md +112 -0
- package/skills/cloudflare-deploy/references/analytics-engine/configuration.md +112 -0
- package/skills/cloudflare-deploy/references/analytics-engine/gotchas.md +85 -0
- package/skills/cloudflare-deploy/references/analytics-engine/patterns.md +83 -0
- package/skills/cloudflare-deploy/references/api/README.md +65 -0
- package/skills/cloudflare-deploy/references/api/api.md +204 -0
- package/skills/cloudflare-deploy/references/api/configuration.md +160 -0
- package/skills/cloudflare-deploy/references/api/gotchas.md +225 -0
- package/skills/cloudflare-deploy/references/api/patterns.md +204 -0
- package/skills/cloudflare-deploy/references/api-shield/README.md +44 -0
- package/skills/cloudflare-deploy/references/api-shield/api.md +141 -0
- package/skills/cloudflare-deploy/references/api-shield/configuration.md +192 -0
- package/skills/cloudflare-deploy/references/api-shield/gotchas.md +125 -0
- package/skills/cloudflare-deploy/references/api-shield/patterns.md +180 -0
- package/skills/cloudflare-deploy/references/argo-smart-routing/README.md +90 -0
- package/skills/cloudflare-deploy/references/argo-smart-routing/api.md +240 -0
- package/skills/cloudflare-deploy/references/argo-smart-routing/configuration.md +197 -0
- package/skills/cloudflare-deploy/references/argo-smart-routing/gotchas.md +111 -0
- package/skills/cloudflare-deploy/references/argo-smart-routing/patterns.md +104 -0
- package/skills/cloudflare-deploy/references/bindings/README.md +122 -0
- package/skills/cloudflare-deploy/references/bindings/api.md +203 -0
- package/skills/cloudflare-deploy/references/bindings/configuration.md +188 -0
- package/skills/cloudflare-deploy/references/bindings/gotchas.md +208 -0
- package/skills/cloudflare-deploy/references/bindings/patterns.md +200 -0
- package/skills/cloudflare-deploy/references/bot-management/README.md +94 -0
- package/skills/cloudflare-deploy/references/bot-management/api.md +169 -0
- package/skills/cloudflare-deploy/references/bot-management/configuration.md +163 -0
- package/skills/cloudflare-deploy/references/bot-management/gotchas.md +114 -0
- package/skills/cloudflare-deploy/references/bot-management/patterns.md +182 -0
- package/skills/cloudflare-deploy/references/browser-rendering/README.md +78 -0
- package/skills/cloudflare-deploy/references/browser-rendering/api.md +108 -0
- package/skills/cloudflare-deploy/references/browser-rendering/configuration.md +78 -0
- package/skills/cloudflare-deploy/references/browser-rendering/gotchas.md +88 -0
- package/skills/cloudflare-deploy/references/browser-rendering/patterns.md +91 -0
- package/skills/cloudflare-deploy/references/c3/README.md +111 -0
- package/skills/cloudflare-deploy/references/c3/api.md +71 -0
- package/skills/cloudflare-deploy/references/c3/configuration.md +81 -0
- package/skills/cloudflare-deploy/references/c3/gotchas.md +92 -0
- package/skills/cloudflare-deploy/references/c3/patterns.md +82 -0
- package/skills/cloudflare-deploy/references/cache-reserve/README.md +147 -0
- package/skills/cloudflare-deploy/references/cache-reserve/api.md +194 -0
- package/skills/cloudflare-deploy/references/cache-reserve/configuration.md +169 -0
- package/skills/cloudflare-deploy/references/cache-reserve/gotchas.md +132 -0
- package/skills/cloudflare-deploy/references/cache-reserve/patterns.md +197 -0
- package/skills/cloudflare-deploy/references/containers/README.md +85 -0
- package/skills/cloudflare-deploy/references/containers/api.md +187 -0
- package/skills/cloudflare-deploy/references/containers/configuration.md +188 -0
- package/skills/cloudflare-deploy/references/containers/gotchas.md +178 -0
- package/skills/cloudflare-deploy/references/containers/patterns.md +202 -0
- package/skills/cloudflare-deploy/references/cron-triggers/README.md +99 -0
- package/skills/cloudflare-deploy/references/cron-triggers/api.md +196 -0
- package/skills/cloudflare-deploy/references/cron-triggers/configuration.md +180 -0
- package/skills/cloudflare-deploy/references/cron-triggers/gotchas.md +199 -0
- package/skills/cloudflare-deploy/references/cron-triggers/patterns.md +190 -0
- package/skills/cloudflare-deploy/references/d1/README.md +133 -0
- package/skills/cloudflare-deploy/references/d1/api.md +196 -0
- package/skills/cloudflare-deploy/references/d1/configuration.md +188 -0
- package/skills/cloudflare-deploy/references/d1/gotchas.md +98 -0
- package/skills/cloudflare-deploy/references/d1/patterns.md +189 -0
- package/skills/cloudflare-deploy/references/ddos/README.md +41 -0
- package/skills/cloudflare-deploy/references/ddos/api.md +164 -0
- package/skills/cloudflare-deploy/references/ddos/configuration.md +93 -0
- package/skills/cloudflare-deploy/references/ddos/gotchas.md +107 -0
- package/skills/cloudflare-deploy/references/ddos/patterns.md +174 -0
- package/skills/cloudflare-deploy/references/do-storage/README.md +75 -0
- package/skills/cloudflare-deploy/references/do-storage/api.md +102 -0
- package/skills/cloudflare-deploy/references/do-storage/configuration.md +112 -0
- package/skills/cloudflare-deploy/references/do-storage/gotchas.md +150 -0
- package/skills/cloudflare-deploy/references/do-storage/patterns.md +182 -0
- package/skills/cloudflare-deploy/references/do-storage/testing.md +183 -0
- package/skills/cloudflare-deploy/references/durable-objects/README.md +185 -0
- package/skills/cloudflare-deploy/references/durable-objects/api.md +187 -0
- package/skills/cloudflare-deploy/references/durable-objects/configuration.md +160 -0
- package/skills/cloudflare-deploy/references/durable-objects/gotchas.md +197 -0
- package/skills/cloudflare-deploy/references/durable-objects/patterns.md +201 -0
- package/skills/cloudflare-deploy/references/email-routing/README.md +89 -0
- package/skills/cloudflare-deploy/references/email-routing/api.md +195 -0
- package/skills/cloudflare-deploy/references/email-routing/configuration.md +186 -0
- package/skills/cloudflare-deploy/references/email-routing/gotchas.md +196 -0
- package/skills/cloudflare-deploy/references/email-routing/patterns.md +229 -0
- package/skills/cloudflare-deploy/references/email-workers/README.md +151 -0
- package/skills/cloudflare-deploy/references/email-workers/api.md +237 -0
- package/skills/cloudflare-deploy/references/email-workers/configuration.md +112 -0
- package/skills/cloudflare-deploy/references/email-workers/gotchas.md +125 -0
- package/skills/cloudflare-deploy/references/email-workers/patterns.md +102 -0
- package/skills/cloudflare-deploy/references/hyperdrive/README.md +82 -0
- package/skills/cloudflare-deploy/references/hyperdrive/api.md +143 -0
- package/skills/cloudflare-deploy/references/hyperdrive/configuration.md +159 -0
- package/skills/cloudflare-deploy/references/hyperdrive/gotchas.md +77 -0
- package/skills/cloudflare-deploy/references/hyperdrive/patterns.md +190 -0
- package/skills/cloudflare-deploy/references/images/README.md +61 -0
- package/skills/cloudflare-deploy/references/images/api.md +96 -0
- package/skills/cloudflare-deploy/references/images/configuration.md +211 -0
- package/skills/cloudflare-deploy/references/images/gotchas.md +99 -0
- package/skills/cloudflare-deploy/references/images/patterns.md +115 -0
- package/skills/cloudflare-deploy/references/kv/README.md +89 -0
- package/skills/cloudflare-deploy/references/kv/api.md +160 -0
- package/skills/cloudflare-deploy/references/kv/configuration.md +144 -0
- package/skills/cloudflare-deploy/references/kv/gotchas.md +131 -0
- package/skills/cloudflare-deploy/references/kv/patterns.md +196 -0
- package/skills/cloudflare-deploy/references/miniflare/README.md +105 -0
- package/skills/cloudflare-deploy/references/miniflare/api.md +187 -0
- package/skills/cloudflare-deploy/references/miniflare/configuration.md +173 -0
- package/skills/cloudflare-deploy/references/miniflare/gotchas.md +160 -0
- package/skills/cloudflare-deploy/references/miniflare/patterns.md +181 -0
- package/skills/cloudflare-deploy/references/network-interconnect/README.md +99 -0
- package/skills/cloudflare-deploy/references/network-interconnect/api.md +199 -0
- package/skills/cloudflare-deploy/references/network-interconnect/configuration.md +114 -0
- package/skills/cloudflare-deploy/references/network-interconnect/gotchas.md +165 -0
- package/skills/cloudflare-deploy/references/network-interconnect/patterns.md +166 -0
- package/skills/cloudflare-deploy/references/observability/README.md +87 -0
- package/skills/cloudflare-deploy/references/observability/api.md +164 -0
- package/skills/cloudflare-deploy/references/observability/configuration.md +169 -0
- package/skills/cloudflare-deploy/references/observability/gotchas.md +115 -0
- package/skills/cloudflare-deploy/references/observability/patterns.md +105 -0
- package/skills/cloudflare-deploy/references/pages/README.md +88 -0
- package/skills/cloudflare-deploy/references/pages/api.md +204 -0
- package/skills/cloudflare-deploy/references/pages/configuration.md +201 -0
- package/skills/cloudflare-deploy/references/pages/gotchas.md +203 -0
- package/skills/cloudflare-deploy/references/pages/patterns.md +204 -0
- package/skills/cloudflare-deploy/references/pages-functions/README.md +98 -0
- package/skills/cloudflare-deploy/references/pages-functions/api.md +143 -0
- package/skills/cloudflare-deploy/references/pages-functions/configuration.md +122 -0
- package/skills/cloudflare-deploy/references/pages-functions/gotchas.md +94 -0
- package/skills/cloudflare-deploy/references/pages-functions/patterns.md +137 -0
- package/skills/cloudflare-deploy/references/pipelines/README.md +105 -0
- package/skills/cloudflare-deploy/references/pipelines/api.md +208 -0
- package/skills/cloudflare-deploy/references/pipelines/configuration.md +98 -0
- package/skills/cloudflare-deploy/references/pipelines/gotchas.md +80 -0
- package/skills/cloudflare-deploy/references/pipelines/patterns.md +87 -0
- package/skills/cloudflare-deploy/references/pulumi/README.md +100 -0
- package/skills/cloudflare-deploy/references/pulumi/api.md +200 -0
- package/skills/cloudflare-deploy/references/pulumi/configuration.md +198 -0
- package/skills/cloudflare-deploy/references/pulumi/gotchas.md +181 -0
- package/skills/cloudflare-deploy/references/pulumi/patterns.md +191 -0
- package/skills/cloudflare-deploy/references/queues/README.md +96 -0
- package/skills/cloudflare-deploy/references/queues/api.md +206 -0
- package/skills/cloudflare-deploy/references/queues/configuration.md +144 -0
- package/skills/cloudflare-deploy/references/queues/gotchas.md +206 -0
- package/skills/cloudflare-deploy/references/queues/patterns.md +220 -0
- package/skills/cloudflare-deploy/references/r2/README.md +95 -0
- package/skills/cloudflare-deploy/references/r2/api.md +200 -0
- package/skills/cloudflare-deploy/references/r2/configuration.md +165 -0
- package/skills/cloudflare-deploy/references/r2/gotchas.md +190 -0
- package/skills/cloudflare-deploy/references/r2/patterns.md +193 -0
- package/skills/cloudflare-deploy/references/r2-data-catalog/README.md +149 -0
- package/skills/cloudflare-deploy/references/r2-data-catalog/api.md +199 -0
- package/skills/cloudflare-deploy/references/r2-data-catalog/configuration.md +198 -0
- package/skills/cloudflare-deploy/references/r2-data-catalog/gotchas.md +170 -0
- package/skills/cloudflare-deploy/references/r2-data-catalog/patterns.md +191 -0
- package/skills/cloudflare-deploy/references/r2-sql/README.md +128 -0
- package/skills/cloudflare-deploy/references/r2-sql/api.md +158 -0
- package/skills/cloudflare-deploy/references/r2-sql/configuration.md +147 -0
- package/skills/cloudflare-deploy/references/r2-sql/gotchas.md +212 -0
- package/skills/cloudflare-deploy/references/r2-sql/patterns.md +222 -0
- package/skills/cloudflare-deploy/references/realtime-sfu/README.md +65 -0
- package/skills/cloudflare-deploy/references/realtime-sfu/api.md +158 -0
- package/skills/cloudflare-deploy/references/realtime-sfu/configuration.md +137 -0
- package/skills/cloudflare-deploy/references/realtime-sfu/gotchas.md +133 -0
- package/skills/cloudflare-deploy/references/realtime-sfu/patterns.md +174 -0
- package/skills/cloudflare-deploy/references/realtimekit/README.md +113 -0
- package/skills/cloudflare-deploy/references/realtimekit/api.md +212 -0
- package/skills/cloudflare-deploy/references/realtimekit/configuration.md +203 -0
- package/skills/cloudflare-deploy/references/realtimekit/gotchas.md +169 -0
- package/skills/cloudflare-deploy/references/realtimekit/patterns.md +223 -0
- package/skills/cloudflare-deploy/references/sandbox/README.md +96 -0
- package/skills/cloudflare-deploy/references/sandbox/api.md +198 -0
- package/skills/cloudflare-deploy/references/sandbox/configuration.md +143 -0
- package/skills/cloudflare-deploy/references/sandbox/gotchas.md +194 -0
- package/skills/cloudflare-deploy/references/sandbox/patterns.md +201 -0
- package/skills/cloudflare-deploy/references/secrets-store/README.md +74 -0
- package/skills/cloudflare-deploy/references/secrets-store/api.md +200 -0
- package/skills/cloudflare-deploy/references/secrets-store/configuration.md +185 -0
- package/skills/cloudflare-deploy/references/secrets-store/gotchas.md +97 -0
- package/skills/cloudflare-deploy/references/secrets-store/patterns.md +207 -0
- package/skills/cloudflare-deploy/references/smart-placement/README.md +138 -0
- package/skills/cloudflare-deploy/references/smart-placement/api.md +183 -0
- package/skills/cloudflare-deploy/references/smart-placement/configuration.md +196 -0
- package/skills/cloudflare-deploy/references/smart-placement/gotchas.md +174 -0
- package/skills/cloudflare-deploy/references/smart-placement/patterns.md +183 -0
- package/skills/cloudflare-deploy/references/snippets/README.md +68 -0
- package/skills/cloudflare-deploy/references/snippets/api.md +198 -0
- package/skills/cloudflare-deploy/references/snippets/configuration.md +227 -0
- package/skills/cloudflare-deploy/references/snippets/gotchas.md +86 -0
- package/skills/cloudflare-deploy/references/snippets/patterns.md +135 -0
- package/skills/cloudflare-deploy/references/spectrum/README.md +52 -0
- package/skills/cloudflare-deploy/references/spectrum/api.md +181 -0
- package/skills/cloudflare-deploy/references/spectrum/configuration.md +194 -0
- package/skills/cloudflare-deploy/references/spectrum/gotchas.md +145 -0
- package/skills/cloudflare-deploy/references/spectrum/patterns.md +196 -0
- package/skills/cloudflare-deploy/references/static-assets/README.md +65 -0
- package/skills/cloudflare-deploy/references/static-assets/api.md +199 -0
- package/skills/cloudflare-deploy/references/static-assets/configuration.md +186 -0
- package/skills/cloudflare-deploy/references/static-assets/gotchas.md +162 -0
- package/skills/cloudflare-deploy/references/static-assets/patterns.md +189 -0
- package/skills/cloudflare-deploy/references/stream/README.md +114 -0
- package/skills/cloudflare-deploy/references/stream/api-live.md +195 -0
- package/skills/cloudflare-deploy/references/stream/api.md +199 -0
- package/skills/cloudflare-deploy/references/stream/configuration.md +141 -0
- package/skills/cloudflare-deploy/references/stream/gotchas.md +130 -0
- package/skills/cloudflare-deploy/references/stream/patterns.md +184 -0
- package/skills/cloudflare-deploy/references/tail-workers/README.md +89 -0
- package/skills/cloudflare-deploy/references/tail-workers/api.md +200 -0
- package/skills/cloudflare-deploy/references/tail-workers/configuration.md +176 -0
- package/skills/cloudflare-deploy/references/tail-workers/gotchas.md +192 -0
- package/skills/cloudflare-deploy/references/tail-workers/patterns.md +180 -0
- package/skills/cloudflare-deploy/references/terraform/README.md +102 -0
- package/skills/cloudflare-deploy/references/terraform/api.md +178 -0
- package/skills/cloudflare-deploy/references/terraform/configuration.md +197 -0
- package/skills/cloudflare-deploy/references/terraform/gotchas.md +150 -0
- package/skills/cloudflare-deploy/references/terraform/patterns.md +174 -0
- package/skills/cloudflare-deploy/references/tunnel/README.md +129 -0
- package/skills/cloudflare-deploy/references/tunnel/api.md +193 -0
- package/skills/cloudflare-deploy/references/tunnel/configuration.md +157 -0
- package/skills/cloudflare-deploy/references/tunnel/gotchas.md +147 -0
- package/skills/cloudflare-deploy/references/tunnel/networking.md +168 -0
- package/skills/cloudflare-deploy/references/tunnel/patterns.md +192 -0
- package/skills/cloudflare-deploy/references/turn/README.md +82 -0
- package/skills/cloudflare-deploy/references/turn/api.md +239 -0
- package/skills/cloudflare-deploy/references/turn/configuration.md +179 -0
- package/skills/cloudflare-deploy/references/turn/gotchas.md +231 -0
- package/skills/cloudflare-deploy/references/turn/patterns.md +213 -0
- package/skills/cloudflare-deploy/references/turnstile/README.md +99 -0
- package/skills/cloudflare-deploy/references/turnstile/api.md +240 -0
- package/skills/cloudflare-deploy/references/turnstile/configuration.md +222 -0
- package/skills/cloudflare-deploy/references/turnstile/gotchas.md +218 -0
- package/skills/cloudflare-deploy/references/turnstile/patterns.md +193 -0
- package/skills/cloudflare-deploy/references/vectorize/README.md +133 -0
- package/skills/cloudflare-deploy/references/vectorize/api.md +88 -0
- package/skills/cloudflare-deploy/references/vectorize/configuration.md +88 -0
- package/skills/cloudflare-deploy/references/vectorize/gotchas.md +76 -0
- package/skills/cloudflare-deploy/references/vectorize/patterns.md +90 -0
- package/skills/cloudflare-deploy/references/waf/README.md +113 -0
- package/skills/cloudflare-deploy/references/waf/api.md +202 -0
- package/skills/cloudflare-deploy/references/waf/configuration.md +203 -0
- package/skills/cloudflare-deploy/references/waf/gotchas.md +204 -0
- package/skills/cloudflare-deploy/references/waf/patterns.md +197 -0
- package/skills/cloudflare-deploy/references/web-analytics/README.md +140 -0
- package/skills/cloudflare-deploy/references/web-analytics/configuration.md +76 -0
- package/skills/cloudflare-deploy/references/web-analytics/gotchas.md +82 -0
- package/skills/cloudflare-deploy/references/web-analytics/integration.md +60 -0
- package/skills/cloudflare-deploy/references/web-analytics/patterns.md +91 -0
- package/skills/cloudflare-deploy/references/workerd/README.md +78 -0
- package/skills/cloudflare-deploy/references/workerd/api.md +185 -0
- package/skills/cloudflare-deploy/references/workerd/configuration.md +183 -0
- package/skills/cloudflare-deploy/references/workerd/gotchas.md +139 -0
- package/skills/cloudflare-deploy/references/workerd/patterns.md +192 -0
- package/skills/cloudflare-deploy/references/workers/README.md +108 -0
- package/skills/cloudflare-deploy/references/workers/api.md +195 -0
- package/skills/cloudflare-deploy/references/workers/configuration.md +185 -0
- package/skills/cloudflare-deploy/references/workers/frameworks.md +197 -0
- package/skills/cloudflare-deploy/references/workers/gotchas.md +136 -0
- package/skills/cloudflare-deploy/references/workers/patterns.md +198 -0
- package/skills/cloudflare-deploy/references/workers-ai/README.md +197 -0
- package/skills/cloudflare-deploy/references/workers-ai/api.md +112 -0
- package/skills/cloudflare-deploy/references/workers-ai/configuration.md +97 -0
- package/skills/cloudflare-deploy/references/workers-ai/gotchas.md +114 -0
- package/skills/cloudflare-deploy/references/workers-ai/patterns.md +120 -0
- package/skills/cloudflare-deploy/references/workers-for-platforms/README.md +89 -0
- package/skills/cloudflare-deploy/references/workers-for-platforms/api.md +196 -0
- package/skills/cloudflare-deploy/references/workers-for-platforms/configuration.md +167 -0
- package/skills/cloudflare-deploy/references/workers-for-platforms/gotchas.md +134 -0
- package/skills/cloudflare-deploy/references/workers-for-platforms/patterns.md +188 -0
- package/skills/cloudflare-deploy/references/workers-playground/README.md +127 -0
- package/skills/cloudflare-deploy/references/workers-playground/api.md +101 -0
- package/skills/cloudflare-deploy/references/workers-playground/configuration.md +163 -0
- package/skills/cloudflare-deploy/references/workers-playground/gotchas.md +88 -0
- package/skills/cloudflare-deploy/references/workers-playground/patterns.md +132 -0
- package/skills/cloudflare-deploy/references/workers-vpc/README.md +127 -0
- package/skills/cloudflare-deploy/references/workers-vpc/api.md +202 -0
- package/skills/cloudflare-deploy/references/workers-vpc/configuration.md +147 -0
- package/skills/cloudflare-deploy/references/workers-vpc/gotchas.md +167 -0
- package/skills/cloudflare-deploy/references/workers-vpc/patterns.md +209 -0
- package/skills/cloudflare-deploy/references/workflows/README.md +69 -0
- package/skills/cloudflare-deploy/references/workflows/api.md +185 -0
- package/skills/cloudflare-deploy/references/workflows/configuration.md +151 -0
- package/skills/cloudflare-deploy/references/workflows/gotchas.md +97 -0
- package/skills/cloudflare-deploy/references/workflows/patterns.md +175 -0
- package/skills/cloudflare-deploy/references/wrangler/README.md +141 -0
- package/skills/cloudflare-deploy/references/wrangler/api.md +188 -0
- package/skills/cloudflare-deploy/references/wrangler/auth.md +73 -0
- package/skills/cloudflare-deploy/references/wrangler/configuration.md +197 -0
- package/skills/cloudflare-deploy/references/wrangler/gotchas.md +197 -0
- package/skills/cloudflare-deploy/references/wrangler/patterns.md +209 -0
- package/skills/cloudflare-deploy/references/zaraz/IMPLEMENTATION_SUMMARY.md +121 -0
- package/skills/cloudflare-deploy/references/zaraz/README.md +111 -0
- package/skills/cloudflare-deploy/references/zaraz/api.md +112 -0
- package/skills/cloudflare-deploy/references/zaraz/configuration.md +90 -0
- package/skills/cloudflare-deploy/references/zaraz/gotchas.md +81 -0
- package/skills/cloudflare-deploy/references/zaraz/patterns.md +74 -0
- package/skills/collaboration/brainstorming/SKILL.md +75 -0
- package/skills/collaboration/dispatching-parallel-agents/SKILL.md +184 -0
- package/skills/collaboration/executing-plans/SKILL.md +78 -0
- package/skills/collaboration/finishing-a-development-branch/SKILL.md +202 -0
- package/skills/collaboration/phase-prompting/SKILL.md +292 -0
- package/skills/collaboration/receiving-code-review/SKILL.md +211 -0
- package/skills/collaboration/requesting-code-review/SKILL.md +107 -0
- package/skills/collaboration/requesting-code-review/code-reviewer.md +146 -0
- package/skills/collaboration/subagent-driven-development/SKILL.md +188 -0
- package/skills/collaboration/using-git-worktrees/SKILL.md +215 -0
- package/skills/collaboration/writing-plans/SKILL.md +118 -0
- package/skills/debugging/defense-in-depth/SKILL.md +130 -0
- package/skills/debugging/root-cause-tracing/SKILL.md +177 -0
- package/skills/debugging/root-cause-tracing/find-polluter.sh +63 -0
- package/skills/debugging/systematic-debugging/SKILL.md +295 -0
- package/skills/debugging/systematic-debugging/test-academic.md +14 -0
- package/skills/debugging/systematic-debugging/test-pressure-1.md +58 -0
- package/skills/debugging/systematic-debugging/test-pressure-2.md +68 -0
- package/skills/debugging/systematic-debugging/test-pressure-3.md +69 -0
- package/skills/debugging/verification-before-completion/SKILL.md +142 -0
- package/skills/develop-web-game/LICENSE.txt +201 -0
- package/skills/develop-web-game/SKILL.md +149 -0
- package/skills/develop-web-game/agents/openai.yaml +6 -0
- package/skills/develop-web-game/assets/game-small.svg +4 -0
- package/skills/develop-web-game/assets/game.png +0 -0
- package/skills/develop-web-game/references/action_payloads.json +7 -0
- package/skills/develop-web-game/scripts/web_game_playwright_client.js +356 -0
- package/skills/doc/LICENSE.txt +201 -0
- package/skills/doc/SKILL.md +80 -0
- package/skills/doc/agents/openai.yaml +6 -0
- package/skills/doc/assets/doc-small.svg +3 -0
- package/skills/doc/assets/doc.png +0 -0
- package/skills/doc/scripts/render_docx.py +296 -0
- package/skills/figma/LICENSE.txt +202 -0
- package/skills/figma/SKILL.md +42 -0
- package/skills/figma/agents/openai.yaml +14 -0
- package/skills/figma/assets/figma-small.svg +3 -0
- package/skills/figma/assets/figma.png +0 -0
- package/skills/figma/assets/icon.svg +28 -0
- package/skills/figma/references/figma-mcp-config.md +35 -0
- package/skills/figma/references/figma-tools-and-prompts.md +34 -0
- package/skills/figma-implement-design/LICENSE.txt +202 -0
- package/skills/figma-implement-design/SKILL.md +264 -0
- package/skills/figma-implement-design/agents/openai.yaml +14 -0
- package/skills/figma-implement-design/assets/figma-small.svg +3 -0
- package/skills/figma-implement-design/assets/figma.png +0 -0
- package/skills/figma-implement-design/assets/icon.svg +28 -0
- package/skills/gh-address-comments/LICENSE.txt +202 -0
- package/skills/gh-address-comments/SKILL.md +25 -0
- package/skills/gh-address-comments/agents/openai.yaml +6 -0
- package/skills/gh-address-comments/assets/github-small.svg +3 -0
- package/skills/gh-address-comments/assets/github.png +0 -0
- package/skills/gh-address-comments/scripts/fetch_comments.py +237 -0
- package/skills/gh-fix-ci/LICENSE.txt +201 -0
- package/skills/gh-fix-ci/SKILL.md +69 -0
- package/skills/gh-fix-ci/agents/openai.yaml +6 -0
- package/skills/gh-fix-ci/assets/github-small.svg +3 -0
- package/skills/gh-fix-ci/assets/github.png +0 -0
- package/skills/gh-fix-ci/scripts/inspect_pr_checks.py +509 -0
- package/skills/goal-driven-project-loop/SKILL.md +217 -0
- package/skills/goal-driven-project-loop/references/goal-contract-template.md +42 -0
- package/skills/imagegen/LICENSE.txt +201 -0
- package/skills/imagegen/SKILL.md +174 -0
- package/skills/imagegen/agents/openai.yaml +6 -0
- package/skills/imagegen/assets/imagegen-small.svg +5 -0
- package/skills/imagegen/assets/imagegen.png +0 -0
- package/skills/imagegen/references/cli.md +132 -0
- package/skills/imagegen/references/codex-network.md +28 -0
- package/skills/imagegen/references/image-api.md +36 -0
- package/skills/imagegen/references/prompting.md +81 -0
- package/skills/imagegen/references/sample-prompts.md +384 -0
- package/skills/imagegen/scripts/image_gen.py +876 -0
- package/skills/jupyter-notebook/LICENSE.txt +201 -0
- package/skills/jupyter-notebook/SKILL.md +107 -0
- package/skills/jupyter-notebook/agents/openai.yaml +6 -0
- package/skills/jupyter-notebook/assets/experiment-template.ipynb +110 -0
- package/skills/jupyter-notebook/assets/jupyter-small.svg +3 -0
- package/skills/jupyter-notebook/assets/jupyter.png +0 -0
- package/skills/jupyter-notebook/assets/tutorial-template.ipynb +107 -0
- package/skills/jupyter-notebook/references/experiment-patterns.md +10 -0
- package/skills/jupyter-notebook/references/notebook-structure.md +17 -0
- package/skills/jupyter-notebook/references/quality-checklist.md +11 -0
- package/skills/jupyter-notebook/references/tutorial-patterns.md +9 -0
- package/skills/jupyter-notebook/scripts/new_notebook.py +130 -0
- package/skills/linear/LICENSE.txt +202 -0
- package/skills/linear/SKILL.md +87 -0
- package/skills/linear/agents/openai.yaml +14 -0
- package/skills/linear/assets/linear-small.svg +5 -0
- package/skills/linear/assets/linear.png +0 -0
- package/skills/netlify-deploy/LICENSE.txt +201 -0
- package/skills/netlify-deploy/SKILL.md +247 -0
- package/skills/netlify-deploy/agents/openai.yaml +6 -0
- package/skills/netlify-deploy/assets/netlify-small.svg +11 -0
- package/skills/netlify-deploy/assets/netlify.png +0 -0
- package/skills/netlify-deploy/references/cli-commands.md +162 -0
- package/skills/netlify-deploy/references/deployment-patterns.md +303 -0
- package/skills/netlify-deploy/references/netlify-toml.md +259 -0
- package/skills/notion-knowledge-capture/LICENSE.txt +7 -0
- package/skills/notion-knowledge-capture/SKILL.md +56 -0
- package/skills/notion-knowledge-capture/agents/openai.yaml +14 -0
- package/skills/notion-knowledge-capture/assets/notion-small.svg +11 -0
- package/skills/notion-knowledge-capture/assets/notion.png +0 -0
- package/skills/notion-knowledge-capture/evaluations/README.md +95 -0
- package/skills/notion-knowledge-capture/evaluations/conversation-to-wiki.json +31 -0
- package/skills/notion-knowledge-capture/evaluations/decision-record.json +31 -0
- package/skills/notion-knowledge-capture/examples/conversation-to-faq.md +226 -0
- package/skills/notion-knowledge-capture/examples/decision-capture.md +126 -0
- package/skills/notion-knowledge-capture/examples/how-to-guide.md +118 -0
- package/skills/notion-knowledge-capture/reference/database-best-practices.md +112 -0
- package/skills/notion-knowledge-capture/reference/decision-log-database.md +58 -0
- package/skills/notion-knowledge-capture/reference/documentation-database.md +93 -0
- package/skills/notion-knowledge-capture/reference/faq-database.md +57 -0
- package/skills/notion-knowledge-capture/reference/how-to-guide-database.md +38 -0
- package/skills/notion-knowledge-capture/reference/learning-database.md +35 -0
- package/skills/notion-knowledge-capture/reference/team-wiki-database.md +27 -0
- package/skills/notion-meeting-intelligence/LICENSE.txt +7 -0
- package/skills/notion-meeting-intelligence/SKILL.md +60 -0
- package/skills/notion-meeting-intelligence/agents/openai.yaml +14 -0
- package/skills/notion-meeting-intelligence/assets/notion-small.svg +11 -0
- package/skills/notion-meeting-intelligence/assets/notion.png +0 -0
- package/skills/notion-meeting-intelligence/evaluations/README.md +101 -0
- package/skills/notion-meeting-intelligence/evaluations/decision-meeting-prep.json +35 -0
- package/skills/notion-meeting-intelligence/evaluations/status-meeting-prep.json +35 -0
- package/skills/notion-meeting-intelligence/examples/customer-meeting.md +125 -0
- package/skills/notion-meeting-intelligence/examples/executive-review.md +78 -0
- package/skills/notion-meeting-intelligence/examples/project-decision.md +431 -0
- package/skills/notion-meeting-intelligence/examples/sprint-planning.md +80 -0
- package/skills/notion-meeting-intelligence/reference/brainstorming-template.md +81 -0
- package/skills/notion-meeting-intelligence/reference/decision-meeting-template.md +94 -0
- package/skills/notion-meeting-intelligence/reference/one-on-one-template.md +58 -0
- package/skills/notion-meeting-intelligence/reference/retrospective-template.md +58 -0
- package/skills/notion-meeting-intelligence/reference/sprint-planning-template.md +68 -0
- package/skills/notion-meeting-intelligence/reference/status-update-template.md +74 -0
- package/skills/notion-meeting-intelligence/reference/template-selection-guide.md +56 -0
- package/skills/notion-research-documentation/LICENSE.txt +7 -0
- package/skills/notion-research-documentation/SKILL.md +59 -0
- package/skills/notion-research-documentation/agents/openai.yaml +14 -0
- package/skills/notion-research-documentation/assets/notion-small.svg +11 -0
- package/skills/notion-research-documentation/assets/notion.png +0 -0
- package/skills/notion-research-documentation/evaluations/README.md +109 -0
- package/skills/notion-research-documentation/evaluations/basic-research.json +28 -0
- package/skills/notion-research-documentation/evaluations/research-to-database.json +29 -0
- package/skills/notion-research-documentation/examples/competitor-analysis.md +283 -0
- package/skills/notion-research-documentation/examples/market-research.md +62 -0
- package/skills/notion-research-documentation/examples/technical-investigation.md +233 -0
- package/skills/notion-research-documentation/examples/trip-planning.md +128 -0
- package/skills/notion-research-documentation/reference/advanced-search.md +212 -0
- package/skills/notion-research-documentation/reference/citations.md +190 -0
- package/skills/notion-research-documentation/reference/comparison-format.md +37 -0
- package/skills/notion-research-documentation/reference/comparison-template.md +44 -0
- package/skills/notion-research-documentation/reference/comprehensive-report-format.md +41 -0
- package/skills/notion-research-documentation/reference/comprehensive-report-template.md +64 -0
- package/skills/notion-research-documentation/reference/format-selection-guide.md +95 -0
- package/skills/notion-research-documentation/reference/quick-brief-format.md +37 -0
- package/skills/notion-research-documentation/reference/quick-brief-template.md +25 -0
- package/skills/notion-research-documentation/reference/research-summary-format.md +33 -0
- package/skills/notion-research-documentation/reference/research-summary-template.md +49 -0
- package/skills/notion-spec-to-implementation/LICENSE.txt +7 -0
- package/skills/notion-spec-to-implementation/SKILL.md +58 -0
- package/skills/notion-spec-to-implementation/agents/openai.yaml +14 -0
- package/skills/notion-spec-to-implementation/assets/notion-small.svg +11 -0
- package/skills/notion-spec-to-implementation/assets/notion.png +0 -0
- package/skills/notion-spec-to-implementation/evaluations/README.md +120 -0
- package/skills/notion-spec-to-implementation/evaluations/basic-spec-implementation.json +32 -0
- package/skills/notion-spec-to-implementation/evaluations/spec-to-tasks.json +35 -0
- package/skills/notion-spec-to-implementation/examples/api-feature.md +461 -0
- package/skills/notion-spec-to-implementation/examples/database-migration.md +81 -0
- package/skills/notion-spec-to-implementation/examples/ui-component.md +68 -0
- package/skills/notion-spec-to-implementation/reference/milestone-summary-template.md +27 -0
- package/skills/notion-spec-to-implementation/reference/progress-tracking.md +458 -0
- package/skills/notion-spec-to-implementation/reference/progress-update-template.md +25 -0
- package/skills/notion-spec-to-implementation/reference/quick-implementation-plan.md +26 -0
- package/skills/notion-spec-to-implementation/reference/spec-parsing.md +383 -0
- package/skills/notion-spec-to-implementation/reference/standard-implementation-plan.md +146 -0
- package/skills/notion-spec-to-implementation/reference/task-creation-template.md +34 -0
- package/skills/notion-spec-to-implementation/reference/task-creation.md +441 -0
- package/skills/openai-docs/LICENSE.txt +201 -0
- package/skills/openai-docs/SKILL.md +68 -0
- package/skills/openai-docs/agents/openai.yaml +14 -0
- package/skills/openai-docs/assets/openai-small.svg +3 -0
- package/skills/openai-docs/assets/openai.png +0 -0
- package/skills/openai-docs/references/gpt-5p4-prompting-guide.md +433 -0
- package/skills/openai-docs/references/latest-model.md +35 -0
- package/skills/openai-docs/references/upgrading-to-gpt-5p4.md +164 -0
- package/skills/pdf/LICENSE.txt +201 -0
- package/skills/pdf/SKILL.md +67 -0
- package/skills/pdf/agents/openai.yaml +5 -0
- package/skills/pdf/assets/pdf.png +0 -0
- package/skills/phase-prompting/SKILL.md +162 -0
- package/skills/playwright/LICENSE.txt +201 -0
- package/skills/playwright/NOTICE.txt +14 -0
- package/skills/playwright/SKILL.md +147 -0
- package/skills/playwright/agents/openai.yaml +6 -0
- package/skills/playwright/assets/playwright-small.svg +3 -0
- package/skills/playwright/assets/playwright.png +0 -0
- package/skills/playwright/references/cli.md +116 -0
- package/skills/playwright/references/workflows.md +95 -0
- package/skills/playwright/scripts/playwright_cli.sh +25 -0
- package/skills/playwright-interactive/LICENSE.txt +201 -0
- package/skills/playwright-interactive/NOTICE.txt +13 -0
- package/skills/playwright-interactive/SKILL.md +693 -0
- package/skills/playwright-interactive/agents/openai.yaml +6 -0
- package/skills/playwright-interactive/assets/playwright-small.svg +3 -0
- package/skills/playwright-interactive/assets/playwright.png +0 -0
- package/skills/problem-solving/ABOUT.md +40 -0
- package/skills/problem-solving/collision-zone-thinking/SKILL.md +62 -0
- package/skills/problem-solving/inversion-exercise/SKILL.md +58 -0
- package/skills/problem-solving/meta-pattern-recognition/SKILL.md +54 -0
- package/skills/problem-solving/scale-game/SKILL.md +63 -0
- package/skills/problem-solving/simplification-cascades/SKILL.md +76 -0
- package/skills/problem-solving/when-stuck/SKILL.md +88 -0
- package/skills/render-deploy/LICENSE.txt +201 -0
- package/skills/render-deploy/SKILL.md +479 -0
- package/skills/render-deploy/agents/openai.yaml +14 -0
- package/skills/render-deploy/assets/docker.yaml +62 -0
- package/skills/render-deploy/assets/go-api.yaml +35 -0
- package/skills/render-deploy/assets/nextjs-postgres.yaml +35 -0
- package/skills/render-deploy/assets/node-express.yaml +25 -0
- package/skills/render-deploy/assets/python-django.yaml +89 -0
- package/skills/render-deploy/assets/render-small.svg +3 -0
- package/skills/render-deploy/assets/render.png +0 -0
- package/skills/render-deploy/assets/static-site.yaml +54 -0
- package/skills/render-deploy/references/blueprint-spec.md +718 -0
- package/skills/render-deploy/references/codebase-analysis.md +49 -0
- package/skills/render-deploy/references/configuration-guide.md +603 -0
- package/skills/render-deploy/references/deployment-details.md +224 -0
- package/skills/render-deploy/references/direct-creation.md +113 -0
- package/skills/render-deploy/references/error-patterns.md +13 -0
- package/skills/render-deploy/references/post-deploy-checks.md +36 -0
- package/skills/render-deploy/references/runtimes.md +473 -0
- package/skills/render-deploy/references/service-types.md +450 -0
- package/skills/render-deploy/references/troubleshooting-basics.md +36 -0
- package/skills/research/ABOUT.md +20 -0
- package/skills/research/tracing-knowledge-lineages/SKILL.md +203 -0
- package/skills/round-prompting/SKILL.md +148 -0
- package/skills/screenshot/LICENSE.txt +201 -0
- package/skills/screenshot/SKILL.md +267 -0
- package/skills/screenshot/agents/openai.yaml +6 -0
- package/skills/screenshot/assets/screenshot-small.svg +5 -0
- package/skills/screenshot/assets/screenshot.png +0 -0
- package/skills/screenshot/scripts/ensure_macos_permissions.sh +54 -0
- package/skills/screenshot/scripts/macos_display_info.swift +22 -0
- package/skills/screenshot/scripts/macos_permissions.swift +40 -0
- package/skills/screenshot/scripts/macos_window_info.swift +126 -0
- package/skills/screenshot/scripts/take_screenshot.ps1 +163 -0
- package/skills/screenshot/scripts/take_screenshot.py +585 -0
- package/skills/security-best-practices/LICENSE.txt +201 -0
- package/skills/security-best-practices/SKILL.md +86 -0
- package/skills/security-best-practices/agents/openai.yaml +4 -0
- package/skills/security-best-practices/references/golang-general-backend-security.md +826 -0
- package/skills/security-best-practices/references/javascript-express-web-server-security.md +1158 -0
- package/skills/security-best-practices/references/javascript-general-web-frontend-security.md +747 -0
- package/skills/security-best-practices/references/javascript-jquery-web-frontend-security.md +678 -0
- package/skills/security-best-practices/references/javascript-typescript-nextjs-web-server-security.md +1144 -0
- package/skills/security-best-practices/references/javascript-typescript-react-web-frontend-security.md +990 -0
- package/skills/security-best-practices/references/javascript-typescript-vue-web-frontend-security.md +791 -0
- package/skills/security-best-practices/references/python-django-web-server-security.md +882 -0
- package/skills/security-best-practices/references/python-fastapi-web-server-security.md +1036 -0
- package/skills/security-best-practices/references/python-flask-web-server-security.md +705 -0
- package/skills/security-ownership-map/LICENSE.txt +201 -0
- package/skills/security-ownership-map/SKILL.md +206 -0
- package/skills/security-ownership-map/agents/openai.yaml +4 -0
- package/skills/security-ownership-map/references/neo4j-import.md +60 -0
- package/skills/security-ownership-map/scripts/build_ownership_map.py +956 -0
- package/skills/security-ownership-map/scripts/community_maintainers.py +544 -0
- package/skills/security-ownership-map/scripts/query_ownership.py +483 -0
- package/skills/security-ownership-map/scripts/run_ownership_map.py +200 -0
- package/skills/security-threat-model/LICENSE.txt +201 -0
- package/skills/security-threat-model/SKILL.md +81 -0
- package/skills/security-threat-model/agents/openai.yaml +4 -0
- package/skills/security-threat-model/references/prompt-template.md +255 -0
- package/skills/security-threat-model/references/security-controls-and-assets.md +32 -0
- package/skills/sentry/LICENSE.txt +201 -0
- package/skills/sentry/SKILL.md +123 -0
- package/skills/sentry/agents/openai.yaml +6 -0
- package/skills/sentry/assets/sentry-small.svg +3 -0
- package/skills/sentry/assets/sentry.png +0 -0
- package/skills/sentry/scripts/sentry_api.py +238 -0
- package/skills/slides/LICENSE.txt +201 -0
- package/skills/slides/SKILL.md +71 -0
- package/skills/slides/agents/openai.yaml +6 -0
- package/skills/slides/assets/pptxgenjs_helpers/code.js +104 -0
- package/skills/slides/assets/pptxgenjs_helpers/image.js +333 -0
- package/skills/slides/assets/pptxgenjs_helpers/index.js +33 -0
- package/skills/slides/assets/pptxgenjs_helpers/latex.js +51 -0
- package/skills/slides/assets/pptxgenjs_helpers/layout.js +643 -0
- package/skills/slides/assets/pptxgenjs_helpers/layout_builders.js +358 -0
- package/skills/slides/assets/pptxgenjs_helpers/svg.js +36 -0
- package/skills/slides/assets/pptxgenjs_helpers/text.js +789 -0
- package/skills/slides/assets/pptxgenjs_helpers/util.js +24 -0
- package/skills/slides/assets/slides-small.svg +3 -0
- package/skills/slides/assets/slides.png +0 -0
- package/skills/slides/references/pptxgenjs-helpers.md +61 -0
- package/skills/slides/scripts/create_montage.py +300 -0
- package/skills/slides/scripts/detect_font.py +873 -0
- package/skills/slides/scripts/ensure_raster_image.py +202 -0
- package/skills/slides/scripts/render_slides.py +273 -0
- package/skills/slides/scripts/slides_test.py +201 -0
- package/skills/sora/LICENSE.txt +201 -0
- package/skills/sora/SKILL.md +153 -0
- package/skills/sora/agents/openai.yaml +6 -0
- package/skills/sora/assets/sora-small.svg +4 -0
- package/skills/sora/assets/sora.png +0 -0
- package/skills/sora/references/cinematic-shots.md +53 -0
- package/skills/sora/references/cli.md +248 -0
- package/skills/sora/references/codex-network.md +28 -0
- package/skills/sora/references/prompting.md +137 -0
- package/skills/sora/references/sample-prompts.md +95 -0
- package/skills/sora/references/social-ads.md +42 -0
- package/skills/sora/references/troubleshooting.md +58 -0
- package/skills/sora/references/video-api.md +45 -0
- package/skills/sora/scripts/sora.py +970 -0
- package/skills/speech/LICENSE.txt +201 -0
- package/skills/speech/SKILL.md +144 -0
- package/skills/speech/agents/openai.yaml +6 -0
- package/skills/speech/assets/speech-small.svg +3 -0
- package/skills/speech/assets/speech.png +0 -0
- package/skills/speech/references/accessibility.md +32 -0
- package/skills/speech/references/audio-api.md +31 -0
- package/skills/speech/references/cli.md +99 -0
- package/skills/speech/references/codex-network.md +28 -0
- package/skills/speech/references/ivr.md +32 -0
- package/skills/speech/references/narration.md +31 -0
- package/skills/speech/references/prompting.md +38 -0
- package/skills/speech/references/sample-prompts.md +44 -0
- package/skills/speech/references/voice-directions.md +80 -0
- package/skills/speech/references/voiceover.md +31 -0
- package/skills/speech/scripts/text_to_speech.py +528 -0
- package/skills/spreadsheet/LICENSE.txt +201 -0
- package/skills/spreadsheet/SKILL.md +145 -0
- package/skills/spreadsheet/agents/openai.yaml +6 -0
- package/skills/spreadsheet/assets/spreadsheet-small.svg +3 -0
- package/skills/spreadsheet/assets/spreadsheet.png +0 -0
- package/skills/spreadsheet/references/examples/openpyxl/create_basic_spreadsheet.py +51 -0
- package/skills/spreadsheet/references/examples/openpyxl/create_spreadsheet_with_styling.py +96 -0
- package/skills/spreadsheet/references/examples/openpyxl/read_existing_spreadsheet.py +59 -0
- package/skills/spreadsheet/references/examples/openpyxl/styling_spreadsheet.py +79 -0
- package/skills/testing/condition-based-waiting/SKILL.md +123 -0
- package/skills/testing/condition-based-waiting/example.ts +158 -0
- package/skills/testing/test-driven-development/SKILL.md +367 -0
- package/skills/testing/testing-anti-patterns/SKILL.md +304 -0
- package/skills/transcribe/LICENSE.txt +201 -0
- package/skills/transcribe/SKILL.md +81 -0
- package/skills/transcribe/agents/openai.yaml +6 -0
- package/skills/transcribe/assets/transcribe-small.svg +3 -0
- package/skills/transcribe/assets/transcribe.png +0 -0
- package/skills/transcribe/references/api.md +8 -0
- package/skills/transcribe/scripts/transcribe_diarize.py +276 -0
- package/skills/using-skills/SKILL.md +102 -0
- package/skills/using-skills/find-skills +107 -0
- package/skills/using-skills/skill-run +44 -0
- package/skills/vercel-deploy/LICENSE.txt +21 -0
- package/skills/vercel-deploy/SKILL.md +77 -0
- package/skills/vercel-deploy/agents/openai.yaml +6 -0
- package/skills/vercel-deploy/assets/vercel-small.svg +5 -0
- package/skills/vercel-deploy/assets/vercel.png +0 -0
- package/skills/vercel-deploy/scripts/deploy.sh +301 -0
- package/skills/winui-app/LICENSE.txt +202 -0
- package/skills/winui-app/SKILL.md +94 -0
- package/skills/winui-app/agents/openai.yaml +5 -0
- package/skills/winui-app/assets/winui.png +0 -0
- package/skills/winui-app/config.yaml +50 -0
- package/skills/winui-app/references/_sections.md +96 -0
- package/skills/winui-app/references/accessibility-input-and-localization.md +51 -0
- package/skills/winui-app/references/build-run-and-launch-verification.md +72 -0
- package/skills/winui-app/references/community-toolkit-controls-and-helpers.md +57 -0
- package/skills/winui-app/references/controls-layout-and-adaptive-ui.md +84 -0
- package/skills/winui-app/references/foundation-environment-audit-and-remediation.md +82 -0
- package/skills/winui-app/references/foundation-setup-and-project-selection.md +67 -0
- package/skills/winui-app/references/foundation-template-first-recovery.md +62 -0
- package/skills/winui-app/references/foundation-winui-app-structure.md +62 -0
- package/skills/winui-app/references/motion-animations-and-polish.md +45 -0
- package/skills/winui-app/references/performance-diagnostics-and-responsiveness.md +46 -0
- package/skills/winui-app/references/sample-source-map.md +37 -0
- package/skills/winui-app/references/shell-navigation-and-windowing.md +67 -0
- package/skills/winui-app/references/styling-theming-materials-and-icons.md +71 -0
- package/skills/winui-app/references/testing-debugging-and-review-checklists.md +77 -0
- package/skills/winui-app/references/windows-app-sdk-lifecycle-notifications-and-deployment.md +52 -0
- package/skills/yeet/LICENSE.txt +201 -0
- package/skills/yeet/SKILL.md +28 -0
- package/skills/yeet/agents/openai.yaml +6 -0
- package/skills/yeet/assets/yeet-small.svg +3 -0
- package/skills/yeet/assets/yeet.png +0 -0
- package/dist/src/agents/definitions.d.ts +0 -16
- package/dist/src/agents/definitions.d.ts.map +0 -1
- package/dist/src/agents/definitions.js +0 -148
- package/dist/src/agents/definitions.js.map +0 -1
|
@@ -0,0 +1,450 @@
|
|
|
1
|
+
# Render Service Types
|
|
2
|
+
|
|
3
|
+
Detailed explanation of each service type available on Render. Choose the right service type based on your application's needs.
|
|
4
|
+
|
|
5
|
+
## Web Services (`type: web`)
|
|
6
|
+
|
|
7
|
+
### Purpose
|
|
8
|
+
|
|
9
|
+
Web services are HTTP servers that handle incoming requests from the internet. They're publicly accessible via HTTPS URLs.
|
|
10
|
+
|
|
11
|
+
### Use Cases
|
|
12
|
+
|
|
13
|
+
- **REST APIs**: JSON APIs for mobile apps or frontend applications
|
|
14
|
+
- **GraphQL servers**: GraphQL endpoints for client queries
|
|
15
|
+
- **Web applications**: Server-rendered websites (Django, Rails, Express)
|
|
16
|
+
- **Full-stack frameworks**: Next.js, Nuxt.js, Remix, SvelteKit
|
|
17
|
+
- **WebSocket servers**: Real-time communication servers
|
|
18
|
+
- **SSR applications**: Server-side rendered React, Vue, or Angular apps
|
|
19
|
+
|
|
20
|
+
### Key Characteristics
|
|
21
|
+
|
|
22
|
+
- **Public URL**: Automatically assigned `https://[service-name].onrender.com`
|
|
23
|
+
- **Port binding required**: Must bind to `0.0.0.0:$PORT`
|
|
24
|
+
- **Health checks**: Render pings your service to verify it's running
|
|
25
|
+
- **HTTPS**: Automatic SSL/TLS certificates
|
|
26
|
+
- **Load balancing**: Traffic distributed across multiple instances
|
|
27
|
+
- **Custom domains**: Support for your own domain names
|
|
28
|
+
|
|
29
|
+
### Required Configuration
|
|
30
|
+
|
|
31
|
+
```yaml
|
|
32
|
+
type: web
|
|
33
|
+
name: my-api
|
|
34
|
+
runtime: node
|
|
35
|
+
buildCommand: npm ci
|
|
36
|
+
startCommand: npm start
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Best Practices
|
|
40
|
+
|
|
41
|
+
1. **Bind to environment PORT**:
|
|
42
|
+
```javascript
|
|
43
|
+
const PORT = process.env.PORT || 3000;
|
|
44
|
+
app.listen(PORT, '0.0.0.0');
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
2. **Add health check endpoint**:
|
|
48
|
+
```javascript
|
|
49
|
+
app.get('/health', (req, res) => {
|
|
50
|
+
res.status(200).json({ status: 'ok' });
|
|
51
|
+
});
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
3. **Use appropriate timeouts**: Web requests should complete within 30 seconds
|
|
55
|
+
|
|
56
|
+
4. **Implement graceful shutdown**: Handle SIGTERM signals properly
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Worker Services (`type: worker`)
|
|
61
|
+
|
|
62
|
+
### Purpose
|
|
63
|
+
|
|
64
|
+
Worker services run background tasks without handling HTTP requests. They're not publicly accessible.
|
|
65
|
+
|
|
66
|
+
### Use Cases
|
|
67
|
+
|
|
68
|
+
- **Queue processors**: Redis queue, BullMQ, Celery, Sidekiq
|
|
69
|
+
- **Background jobs**: Email sending, image processing, data exports
|
|
70
|
+
- **Event consumers**: Message queue consumers (Kafka, RabbitMQ, etc.)
|
|
71
|
+
- **Data pipeline workers**: ETL processes, data transformation
|
|
72
|
+
- **Scheduled background tasks**: Continuous processes (not cron)
|
|
73
|
+
- **WebSocket backend**: Dedicated WebSocket handler services
|
|
74
|
+
|
|
75
|
+
### Key Characteristics
|
|
76
|
+
|
|
77
|
+
- **No public URL**: Not accessible from internet
|
|
78
|
+
- **No port binding**: Doesn't need to listen on a port
|
|
79
|
+
- **No health checks**: Render monitors process health differently
|
|
80
|
+
- **Long-running**: Can run indefinitely
|
|
81
|
+
- **Private communication**: Access via internal networking
|
|
82
|
+
- **Restart on crash**: Automatically restarted if process dies
|
|
83
|
+
|
|
84
|
+
### Required Configuration
|
|
85
|
+
|
|
86
|
+
```yaml
|
|
87
|
+
type: worker
|
|
88
|
+
name: queue-processor
|
|
89
|
+
runtime: python
|
|
90
|
+
buildCommand: pip install -r requirements.txt
|
|
91
|
+
startCommand: celery -A tasks worker --loglevel=info
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Best Practices
|
|
95
|
+
|
|
96
|
+
1. **Connect to message queue**:
|
|
97
|
+
```python
|
|
98
|
+
import redis
|
|
99
|
+
r = redis.from_url(os.environ['REDIS_URL'])
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
2. **Implement retry logic**: Handle failures gracefully
|
|
103
|
+
|
|
104
|
+
3. **Monitor queue depth**: Track pending jobs
|
|
105
|
+
|
|
106
|
+
4. **Log processing status**: Make debugging easier
|
|
107
|
+
|
|
108
|
+
5. **Graceful shutdown**: Finish current jobs before exiting
|
|
109
|
+
|
|
110
|
+
### Common Patterns
|
|
111
|
+
|
|
112
|
+
**Node.js with BullMQ:**
|
|
113
|
+
```yaml
|
|
114
|
+
type: worker
|
|
115
|
+
name: job-processor
|
|
116
|
+
runtime: node
|
|
117
|
+
buildCommand: npm ci
|
|
118
|
+
startCommand: node worker.js
|
|
119
|
+
envVars:
|
|
120
|
+
- key: REDIS_URL
|
|
121
|
+
fromDatabase:
|
|
122
|
+
name: redis
|
|
123
|
+
property: connectionString
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**Python with Celery:**
|
|
127
|
+
```yaml
|
|
128
|
+
type: worker
|
|
129
|
+
name: celery-worker
|
|
130
|
+
runtime: python
|
|
131
|
+
buildCommand: pip install -r requirements.txt
|
|
132
|
+
startCommand: celery -A app.celery worker
|
|
133
|
+
envVars:
|
|
134
|
+
- key: REDIS_URL
|
|
135
|
+
fromDatabase:
|
|
136
|
+
name: redis
|
|
137
|
+
property: connectionString
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Cron Jobs (`type: cron`)
|
|
143
|
+
|
|
144
|
+
### Purpose
|
|
145
|
+
|
|
146
|
+
Cron jobs run scheduled tasks on a repeating schedule. They execute, complete, and shut down.
|
|
147
|
+
|
|
148
|
+
### Use Cases
|
|
149
|
+
|
|
150
|
+
- **Database backups**: Regular automated backups
|
|
151
|
+
- **Report generation**: Daily/weekly reports
|
|
152
|
+
- **Data cleanup**: Delete old records periodically
|
|
153
|
+
- **Cache warming**: Pre-populate caches
|
|
154
|
+
- **Email digests**: Send scheduled email summaries
|
|
155
|
+
- **Data synchronization**: Sync between systems
|
|
156
|
+
- **Batch processing**: Process accumulated data
|
|
157
|
+
|
|
158
|
+
### Key Characteristics
|
|
159
|
+
|
|
160
|
+
- **Scheduled execution**: Runs on cron schedule
|
|
161
|
+
- **Automatic shutdown**: Shuts down after completing
|
|
162
|
+
- **No persistent port**: Doesn't maintain listening port
|
|
163
|
+
- **No health checks**: Task either completes or fails
|
|
164
|
+
- **UTC timezone**: All schedules in UTC
|
|
165
|
+
- **Maximum runtime**: Jobs timeout after configured limit
|
|
166
|
+
|
|
167
|
+
### Required Configuration
|
|
168
|
+
|
|
169
|
+
```yaml
|
|
170
|
+
type: cron
|
|
171
|
+
name: daily-backup
|
|
172
|
+
runtime: node
|
|
173
|
+
schedule: "0 2 * * *" # Daily at 2 AM UTC
|
|
174
|
+
buildCommand: npm ci
|
|
175
|
+
startCommand: node scripts/backup.js
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Schedule Format
|
|
179
|
+
|
|
180
|
+
Standard cron syntax: `minute hour day month weekday`
|
|
181
|
+
|
|
182
|
+
**Common schedules:**
|
|
183
|
+
|
|
184
|
+
| Schedule | Description |
|
|
185
|
+
|----------|-------------|
|
|
186
|
+
| `*/5 * * * *` | Every 5 minutes |
|
|
187
|
+
| `0 * * * *` | Every hour |
|
|
188
|
+
| `0 0 * * *` | Daily at midnight UTC |
|
|
189
|
+
| `0 9 * * 1-5` | Weekdays at 9 AM UTC |
|
|
190
|
+
| `0 0 1 * *` | First day of each month |
|
|
191
|
+
| `0 9 * * 1` | Every Monday at 9 AM UTC |
|
|
192
|
+
|
|
193
|
+
### Best Practices
|
|
194
|
+
|
|
195
|
+
1. **Handle failures gracefully**: Jobs should be idempotent
|
|
196
|
+
|
|
197
|
+
2. **Log completion status**: Track success/failure
|
|
198
|
+
|
|
199
|
+
3. **Set appropriate timeouts**: Match expected job duration
|
|
200
|
+
|
|
201
|
+
4. **Use UTC times**: All schedules are UTC-based
|
|
202
|
+
|
|
203
|
+
5. **Test thoroughly**: Test with different data scenarios
|
|
204
|
+
|
|
205
|
+
### Example Use Cases
|
|
206
|
+
|
|
207
|
+
**Daily Database Backup:**
|
|
208
|
+
```yaml
|
|
209
|
+
type: cron
|
|
210
|
+
name: db-backup
|
|
211
|
+
runtime: python
|
|
212
|
+
schedule: "0 1 * * *" # 1 AM UTC daily
|
|
213
|
+
buildCommand: pip install -r requirements.txt
|
|
214
|
+
startCommand: python scripts/backup.py
|
|
215
|
+
envVars:
|
|
216
|
+
- key: DATABASE_URL
|
|
217
|
+
fromDatabase:
|
|
218
|
+
name: postgres
|
|
219
|
+
property: connectionString
|
|
220
|
+
- key: S3_BUCKET
|
|
221
|
+
value: my-backups
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
**Hourly Cache Refresh:**
|
|
225
|
+
```yaml
|
|
226
|
+
type: cron
|
|
227
|
+
name: cache-refresh
|
|
228
|
+
runtime: node
|
|
229
|
+
schedule: "0 * * * *" # Top of every hour
|
|
230
|
+
buildCommand: npm ci
|
|
231
|
+
startCommand: node scripts/refresh-cache.js
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Static Sites (`type: web` + `runtime: static`)
|
|
237
|
+
|
|
238
|
+
### Purpose
|
|
239
|
+
|
|
240
|
+
Serve static HTML, CSS, and JavaScript files via CDN. No backend runtime.
|
|
241
|
+
|
|
242
|
+
### Use Cases
|
|
243
|
+
|
|
244
|
+
- **Single Page Applications (SPAs)**: React, Vue, Angular apps
|
|
245
|
+
- **Static site generators**: Gatsby, Next.js (static export), Hugo
|
|
246
|
+
- **Documentation sites**: MkDocs, Docusaurus, VitePress
|
|
247
|
+
- **Landing pages**: Marketing sites
|
|
248
|
+
- **Portfolio sites**: Personal websites
|
|
249
|
+
- **JAMstack sites**: Static sites with API integration
|
|
250
|
+
|
|
251
|
+
### Key Characteristics
|
|
252
|
+
|
|
253
|
+
- **CDN delivery**: Global edge caching
|
|
254
|
+
- **No backend runtime**: Only serves built files
|
|
255
|
+
- **Build output only**: Serves contents of build directory
|
|
256
|
+
- **Routing support**: Rewrite rules for SPA routing
|
|
257
|
+
- **Custom headers**: Cache control, security headers
|
|
258
|
+
- **Fast deployment**: Quick to build and deploy
|
|
259
|
+
|
|
260
|
+
### Required Configuration
|
|
261
|
+
|
|
262
|
+
```yaml
|
|
263
|
+
type: web
|
|
264
|
+
name: frontend
|
|
265
|
+
runtime: static
|
|
266
|
+
buildCommand: npm ci && npm run build
|
|
267
|
+
staticPublishPath: ./dist # or ./build, ./out, ./public
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
### Routing for SPAs
|
|
271
|
+
|
|
272
|
+
Single Page Applications need rewrite rules to handle client-side routing:
|
|
273
|
+
|
|
274
|
+
```yaml
|
|
275
|
+
type: web
|
|
276
|
+
name: react-app
|
|
277
|
+
runtime: static
|
|
278
|
+
buildCommand: npm ci && npm run build
|
|
279
|
+
staticPublishPath: ./build
|
|
280
|
+
routes:
|
|
281
|
+
- type: rewrite
|
|
282
|
+
source: /*
|
|
283
|
+
destination: /index.html
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Custom Headers
|
|
287
|
+
|
|
288
|
+
Add cache control and security headers:
|
|
289
|
+
|
|
290
|
+
```yaml
|
|
291
|
+
type: web
|
|
292
|
+
name: static-site
|
|
293
|
+
runtime: static
|
|
294
|
+
buildCommand: npm ci && npm run build
|
|
295
|
+
staticPublishPath: ./dist
|
|
296
|
+
headers:
|
|
297
|
+
# Cache static assets
|
|
298
|
+
- path: /static/*
|
|
299
|
+
name: Cache-Control
|
|
300
|
+
value: public, max-age=31536000, immutable
|
|
301
|
+
|
|
302
|
+
# Security headers
|
|
303
|
+
- path: /*
|
|
304
|
+
name: X-Frame-Options
|
|
305
|
+
value: DENY
|
|
306
|
+
- path: /*
|
|
307
|
+
name: X-Content-Type-Options
|
|
308
|
+
value: nosniff
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### Build Filters
|
|
312
|
+
|
|
313
|
+
For monorepos, only build when frontend files change:
|
|
314
|
+
|
|
315
|
+
```yaml
|
|
316
|
+
type: web
|
|
317
|
+
name: frontend
|
|
318
|
+
runtime: static
|
|
319
|
+
buildCommand: npm ci && npm run build
|
|
320
|
+
staticPublishPath: ./dist
|
|
321
|
+
buildFilter:
|
|
322
|
+
paths:
|
|
323
|
+
- frontend/**
|
|
324
|
+
ignoredPaths:
|
|
325
|
+
- frontend/**/*.test.js
|
|
326
|
+
- frontend/README.md
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### Best Practices
|
|
330
|
+
|
|
331
|
+
1. **Optimize build output**: Minify, compress, tree-shake
|
|
332
|
+
|
|
333
|
+
2. **Use proper cache headers**: Long cache for hashed assets
|
|
334
|
+
|
|
335
|
+
3. **Add security headers**: Protect against common attacks
|
|
336
|
+
|
|
337
|
+
4. **Configure SPA routing**: Add rewrite rules for client routing
|
|
338
|
+
|
|
339
|
+
5. **Handle 404s**: Create custom 404.html page
|
|
340
|
+
|
|
341
|
+
---
|
|
342
|
+
|
|
343
|
+
## Private Services (`type: pserv`)
|
|
344
|
+
|
|
345
|
+
### Purpose
|
|
346
|
+
|
|
347
|
+
Internal services accessible only within your Render account. Not exposed to the internet.
|
|
348
|
+
|
|
349
|
+
### Use Cases
|
|
350
|
+
|
|
351
|
+
- **Internal APIs**: Services accessed only by other services
|
|
352
|
+
- **Database proxies**: Connection pools, read replicas
|
|
353
|
+
- **Microservices**: Service mesh architectures
|
|
354
|
+
- **Admin tools**: Internal dashboards
|
|
355
|
+
- **Cache layers**: Internal caching services
|
|
356
|
+
- **Message brokers**: Internal message queues
|
|
357
|
+
|
|
358
|
+
### Key Characteristics
|
|
359
|
+
|
|
360
|
+
- **No public URL**: Only accessible via internal DNS
|
|
361
|
+
- **Internal networking**: Fast, low-latency connections
|
|
362
|
+
- **Port binding required**: Must bind to `0.0.0.0:$PORT`
|
|
363
|
+
- **Private DNS**: `[service-name].render-internal.com`
|
|
364
|
+
- **Same-account only**: Only accessible from same account
|
|
365
|
+
- **No internet access**: Traffic stays within Render network
|
|
366
|
+
|
|
367
|
+
### Required Configuration
|
|
368
|
+
|
|
369
|
+
```yaml
|
|
370
|
+
type: pserv
|
|
371
|
+
name: internal-api
|
|
372
|
+
runtime: node
|
|
373
|
+
buildCommand: npm ci
|
|
374
|
+
startCommand: npm start
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
### Accessing Private Services
|
|
378
|
+
|
|
379
|
+
From other services in the same account:
|
|
380
|
+
|
|
381
|
+
```javascript
|
|
382
|
+
// Use .render-internal.com domain
|
|
383
|
+
const API_URL = 'http://internal-api.render-internal.com:10000';
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
Or use service references:
|
|
387
|
+
|
|
388
|
+
```yaml
|
|
389
|
+
services:
|
|
390
|
+
- type: web
|
|
391
|
+
name: frontend
|
|
392
|
+
runtime: node
|
|
393
|
+
envVars:
|
|
394
|
+
- key: INTERNAL_API_URL
|
|
395
|
+
fromService:
|
|
396
|
+
name: internal-api
|
|
397
|
+
type: pserv
|
|
398
|
+
property: hostport
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
### Best Practices
|
|
402
|
+
|
|
403
|
+
1. **Use internal DNS**: Always use `.render-internal.com` domains
|
|
404
|
+
|
|
405
|
+
2. **No authentication needed**: Already isolated to account
|
|
406
|
+
|
|
407
|
+
3. **Fast communication**: Low latency between services
|
|
408
|
+
|
|
409
|
+
4. **Simplify architecture**: No need for external load balancers
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
## Comparison Table
|
|
414
|
+
|
|
415
|
+
| Feature | Web | Worker | Cron | Static | Private |
|
|
416
|
+
|---------|-----|--------|------|--------|---------|
|
|
417
|
+
| Public URL | ✅ Yes | ❌ No | ❌ No | ✅ Yes | ❌ No |
|
|
418
|
+
| Port Binding | ✅ Required | ❌ Not needed | ❌ Not needed | ❌ N/A | ✅ Required |
|
|
419
|
+
| Health Checks | ✅ Yes | ❌ No | ❌ No | ❌ N/A | ✅ Yes |
|
|
420
|
+
| Runtime | ✅ Yes | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes |
|
|
421
|
+
| Persistent | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes |
|
|
422
|
+
| Scaling | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes |
|
|
423
|
+
| Use Case | HTTP servers | Background jobs | Scheduled tasks | Static files | Internal services |
|
|
424
|
+
|
|
425
|
+
## Choosing the Right Service Type
|
|
426
|
+
|
|
427
|
+
**Use Web Service when:**
|
|
428
|
+
- Your app handles HTTP requests
|
|
429
|
+
- Users need to access it via URL
|
|
430
|
+
- You need load balancing and scaling
|
|
431
|
+
|
|
432
|
+
**Use Worker Service when:**
|
|
433
|
+
- Processing background jobs
|
|
434
|
+
- Consuming from message queues
|
|
435
|
+
- Running long-lived processes without HTTP
|
|
436
|
+
|
|
437
|
+
**Use Cron Job when:**
|
|
438
|
+
- Running scheduled tasks
|
|
439
|
+
- Processing doesn't need to be always-on
|
|
440
|
+
- Tasks run periodically (hourly, daily, weekly)
|
|
441
|
+
|
|
442
|
+
**Use Static Site when:**
|
|
443
|
+
- Serving pre-built HTML/CSS/JS
|
|
444
|
+
- No backend processing needed
|
|
445
|
+
- Want CDN caching and fast delivery
|
|
446
|
+
|
|
447
|
+
**Use Private Service when:**
|
|
448
|
+
- Service only accessed by other services
|
|
449
|
+
- Want internal-only communication
|
|
450
|
+
- Building microservice architectures
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Basic troubleshooting (deploy-time and startup)
|
|
2
|
+
|
|
3
|
+
Use this when a deploy fails, the service crashes on start, or health checks time out.
|
|
4
|
+
Keep fixes minimal and redeploy after each change.
|
|
5
|
+
|
|
6
|
+
## 1) Classify the failure
|
|
7
|
+
|
|
8
|
+
- **Build failure**: errors in build logs, missing dependencies, build command issues.
|
|
9
|
+
- **Startup failure**: app exits quickly, crashes, or cannot bind to `$PORT`.
|
|
10
|
+
- **Runtime/health failure**: service is live but health checks fail or 5xx errors.
|
|
11
|
+
|
|
12
|
+
## 2) Quick checks by class
|
|
13
|
+
|
|
14
|
+
**Build failure**
|
|
15
|
+
- Confirm the build command is correct for the runtime.
|
|
16
|
+
- Ensure required dependencies are present in `package.json`, `requirements.txt`, etc.
|
|
17
|
+
- Check for missing build-time env vars.
|
|
18
|
+
|
|
19
|
+
**Startup failure**
|
|
20
|
+
- Confirm the start command and working directory.
|
|
21
|
+
- Ensure port binding is `0.0.0.0:$PORT`.
|
|
22
|
+
- Check for missing runtime env vars (secrets, DB URLs).
|
|
23
|
+
|
|
24
|
+
**Runtime/health failure**
|
|
25
|
+
- Verify the health endpoint path and response.
|
|
26
|
+
- Confirm the app is actually listening on `$PORT`.
|
|
27
|
+
- Check database connectivity and migrations.
|
|
28
|
+
|
|
29
|
+
## 3) Map error signatures to fixes
|
|
30
|
+
|
|
31
|
+
Use [error-patterns.md](error-patterns.md) for a compact catalog of common log messages.
|
|
32
|
+
|
|
33
|
+
## 4) If still blocked
|
|
34
|
+
|
|
35
|
+
Gather the latest build logs and runtime error logs, then consider the optional
|
|
36
|
+
`render-debug` skill for deeper diagnostics (metrics, DB checks, expanded patterns).
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Research Skills - Attribution
|
|
2
|
+
|
|
3
|
+
This skill was derived from agent patterns in the [Amplifier](https://github.com/microsoft/amplifier) project.
|
|
4
|
+
|
|
5
|
+
**Source Repository:**
|
|
6
|
+
- Name: Amplifier
|
|
7
|
+
- URL: https://github.com/microsoft/amplifier
|
|
8
|
+
- Commit: 2adb63f858e7d760e188197c8e8d4c1ef721e2a6
|
|
9
|
+
- Date: 2025-10-10
|
|
10
|
+
|
|
11
|
+
## Skills Derived from Amplifier Agents
|
|
12
|
+
|
|
13
|
+
**From knowledge-archaeologist agent:**
|
|
14
|
+
- tracing-knowledge-lineages - Understanding how ideas evolved over time to find old solutions for new problems and avoid repeating past failures
|
|
15
|
+
|
|
16
|
+
## What Was Adapted
|
|
17
|
+
|
|
18
|
+
The knowledge-archaeologist agent excels at temporal analysis of knowledge evolution, paradigm shift documentation, and preserving the "fossil record" of ideas. This skill extracts the core research techniques for understanding why current approaches exist before proposing changes.
|
|
19
|
+
|
|
20
|
+
Adapted with practical search strategies (decision records, git archaeology, conversation history) and scoped for mature codebases (explicitly notes to skip for greenfield projects).
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Tracing Knowledge Lineages
|
|
3
|
+
description: Understand how ideas evolved over time to find old solutions for new problems and avoid repeating past failures
|
|
4
|
+
when_to_use: when questioning "why do we use X", before abandoning approaches, or evaluating "new" ideas that might be revivals
|
|
5
|
+
version: 1.1.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Tracing Knowledge Lineages
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Ideas have history. Understanding why we arrived at current approaches - and what was tried before - prevents repeating failures and rediscovers abandoned solutions.
|
|
13
|
+
|
|
14
|
+
**Core principle:** Before judging current approaches or proposing "new" ones, trace their lineage.
|
|
15
|
+
|
|
16
|
+
## When to Trace Lineages
|
|
17
|
+
|
|
18
|
+
**Trace before:**
|
|
19
|
+
- Proposing to replace existing approach (understand why it exists first)
|
|
20
|
+
- Dismissing "old" patterns (they might have been abandoned for wrong reasons)
|
|
21
|
+
- Implementing "new" ideas (they might be revivals worth reconsidering)
|
|
22
|
+
- Declaring something "best practice" (understand its evolution)
|
|
23
|
+
|
|
24
|
+
**Red flags triggering lineage tracing:**
|
|
25
|
+
- "This seems overcomplicated" (was it simpler before? why did it grow?)
|
|
26
|
+
- "Why don't we just..." (someone probably tried, what happened?)
|
|
27
|
+
- "This is the modern way" (what did the old way teach us?)
|
|
28
|
+
- "We should switch to X" (what drove us away from X originally?)
|
|
29
|
+
|
|
30
|
+
## Tracing Techniques
|
|
31
|
+
|
|
32
|
+
### Technique 1: Decision Archaeology
|
|
33
|
+
|
|
34
|
+
Search for when/why current approach was chosen:
|
|
35
|
+
|
|
36
|
+
1. **Check decision records** (common locations: `docs/decisions/`, `docs/adr/`, `.decisions/`, architecture decision records)
|
|
37
|
+
2. **Search conversations** (skills/collaboration/remembering-conversations)
|
|
38
|
+
3. **Git archaeology** (`git log --all --full-history -- path/to/file`)
|
|
39
|
+
4. **Ask the person who wrote it** (if available)
|
|
40
|
+
|
|
41
|
+
**Document:**
|
|
42
|
+
```markdown
|
|
43
|
+
## Lineage: [Current Approach]
|
|
44
|
+
|
|
45
|
+
**When adopted:** [Date/commit]
|
|
46
|
+
**Why adopted:** [Original problem it solved]
|
|
47
|
+
**What it replaced:** [Previous approach]
|
|
48
|
+
**Why replaced:** [What was wrong with old approach]
|
|
49
|
+
**Context that drove change:** [External factors, new requirements]
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Technique 2: Failed Attempt Analysis
|
|
53
|
+
|
|
54
|
+
When someone says "we tried X and it didn't work":
|
|
55
|
+
|
|
56
|
+
**Don't assume:** X is fundamentally flawed
|
|
57
|
+
**Instead trace:**
|
|
58
|
+
1. **What was the context?** (constraints that no longer apply)
|
|
59
|
+
2. **What specifically failed?** (the whole approach or one aspect?)
|
|
60
|
+
3. **Why did it fail then?** (technology limits, team constraints, time pressure)
|
|
61
|
+
4. **Has context changed?** (new tools, different requirements, more experience)
|
|
62
|
+
|
|
63
|
+
**Document:**
|
|
64
|
+
```markdown
|
|
65
|
+
## Failed Attempt: [Approach]
|
|
66
|
+
|
|
67
|
+
**When attempted:** [Timeframe]
|
|
68
|
+
**Why attempted:** [Original motivation]
|
|
69
|
+
**What failed:** [Specific failure mode]
|
|
70
|
+
**Why it failed:** [Root cause, not symptoms]
|
|
71
|
+
**Context at time:** [Constraints that existed then]
|
|
72
|
+
**Context now:** [What's different today]
|
|
73
|
+
**Worth reconsidering?:** [Yes/No + reasoning]
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Technique 3: Revival Detection
|
|
77
|
+
|
|
78
|
+
When evaluating "new" approaches:
|
|
79
|
+
|
|
80
|
+
1. **Search for historical precedents** (was this tried before under different name?)
|
|
81
|
+
2. **Identify what's genuinely new** (vs. what's rebranded)
|
|
82
|
+
3. **Understand why it died** (if it's a revival)
|
|
83
|
+
4. **Check if resurrection conditions exist** (has context changed enough?)
|
|
84
|
+
|
|
85
|
+
**Common revival patterns:**
|
|
86
|
+
- Microservices ← Service-Oriented Architecture ← Distributed Objects
|
|
87
|
+
- GraphQL ← SOAP ← RPC
|
|
88
|
+
- Serverless ← CGI scripts ← Cloud functions
|
|
89
|
+
- NoSQL ← Flat files ← Document stores
|
|
90
|
+
|
|
91
|
+
**Ask:** "What did we learn from the previous incarnation?"
|
|
92
|
+
|
|
93
|
+
### Technique 4: Paradigm Shift Mapping
|
|
94
|
+
|
|
95
|
+
When major architectural changes occurred:
|
|
96
|
+
|
|
97
|
+
**Map the transition:**
|
|
98
|
+
```markdown
|
|
99
|
+
## Paradigm Shift: From [Old] to [New]
|
|
100
|
+
|
|
101
|
+
**Pre-shift thinking:** [How we thought about problem]
|
|
102
|
+
**Catalyst:** [What triggered the shift]
|
|
103
|
+
**Post-shift thinking:** [How we think now]
|
|
104
|
+
**What was gained:** [New capabilities]
|
|
105
|
+
**What was lost:** [Old capabilities sacrificed]
|
|
106
|
+
**Lessons preserved:** [What we kept from old paradigm]
|
|
107
|
+
**Lessons forgotten:** [What we might need to relearn]
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Search Strategies
|
|
111
|
+
|
|
112
|
+
**Where to look for lineage:**
|
|
113
|
+
|
|
114
|
+
1. **Decision records** (common locations: `docs/decisions/`, `docs/adr/`, `.adr/`, or search for "ADR", "decision record")
|
|
115
|
+
2. **Conversation history** (search with skills/collaboration/remembering-conversations)
|
|
116
|
+
3. **Git history** (`git log --grep="keyword"`, `git blame`)
|
|
117
|
+
4. **Issue/PR discussions** (GitHub/GitLab issue history)
|
|
118
|
+
5. **Documentation evolution** (`git log -- docs/`)
|
|
119
|
+
6. **Team knowledge** (ask: "Has anyone tried this before?")
|
|
120
|
+
|
|
121
|
+
**Search patterns:**
|
|
122
|
+
```bash
|
|
123
|
+
# Find when approach was introduced
|
|
124
|
+
git log --all --grep="introduce.*caching"
|
|
125
|
+
|
|
126
|
+
# Find what file replaced
|
|
127
|
+
git log --diff-filter=D --summary | grep pattern
|
|
128
|
+
|
|
129
|
+
# Find discussion of abandoned approach
|
|
130
|
+
git log --all --grep="remove.*websocket"
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Red Flags - You're Ignoring History
|
|
134
|
+
|
|
135
|
+
- "Let's just rewrite this" (without understanding why it's complex)
|
|
136
|
+
- "The old way was obviously wrong" (without understanding context)
|
|
137
|
+
- "Nobody uses X anymore" (without checking why it died)
|
|
138
|
+
- Dismissing approaches because they're "old" (age ≠ quality)
|
|
139
|
+
- Adopting approaches because they're "new" (newness ≠ quality)
|
|
140
|
+
|
|
141
|
+
**All of these mean: STOP. Trace the lineage first.**
|
|
142
|
+
|
|
143
|
+
## When to Override History
|
|
144
|
+
|
|
145
|
+
**You CAN ignore lineage when:**
|
|
146
|
+
|
|
147
|
+
1. **Context fundamentally changed**
|
|
148
|
+
- Technology that didn't exist is now available
|
|
149
|
+
- Constraints that forced decisions no longer apply
|
|
150
|
+
- Team has different capabilities now
|
|
151
|
+
|
|
152
|
+
2. **We learned critical lessons**
|
|
153
|
+
- Industry-wide understanding evolved
|
|
154
|
+
- Past attempt taught us what to avoid
|
|
155
|
+
- Better patterns emerged and were proven
|
|
156
|
+
|
|
157
|
+
3. **Original reasoning was flawed**
|
|
158
|
+
- Based on assumptions later proven wrong
|
|
159
|
+
- Cargo-culting without understanding
|
|
160
|
+
- Fashion-driven, not needs-driven
|
|
161
|
+
|
|
162
|
+
**But document WHY you're overriding:** Future you needs to know this was deliberate, not ignorant.
|
|
163
|
+
|
|
164
|
+
## Documentation Format
|
|
165
|
+
|
|
166
|
+
When proposing changes, include lineage:
|
|
167
|
+
|
|
168
|
+
```markdown
|
|
169
|
+
## Proposal: Switch from [Old] to [New]
|
|
170
|
+
|
|
171
|
+
### Current Approach Lineage
|
|
172
|
+
- **Adopted:** [When/why]
|
|
173
|
+
- **Replaced:** [What it replaced]
|
|
174
|
+
- **Worked because:** [Its strengths]
|
|
175
|
+
- **Struggling because:** [Current problems]
|
|
176
|
+
|
|
177
|
+
### Previous Attempts at [New]
|
|
178
|
+
- **Attempted:** [When, if ever]
|
|
179
|
+
- **Failed because:** [Why it didn't work then]
|
|
180
|
+
- **Context change:** [What's different now]
|
|
181
|
+
|
|
182
|
+
### Decision
|
|
183
|
+
[Proceed/Defer/Abandon] because [reasoning with historical context]
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Examples
|
|
187
|
+
|
|
188
|
+
### Good Lineage Tracing
|
|
189
|
+
"We used XML before JSON. XML died because verbosity hurt developer experience. But XML namespaces solved a real problem. If we hit namespace conflicts in JSON, we should study how XML solved it, not reinvent."
|
|
190
|
+
|
|
191
|
+
### Bad Lineage Ignorance
|
|
192
|
+
"REST is old, let's use GraphQL." (Ignores: Why did REST win over SOAP? What problems does it solve well? Are those problems gone?)
|
|
193
|
+
|
|
194
|
+
### Revival with Context
|
|
195
|
+
"We tried client-side routing in 2010, abandoned it due to poor browser support. Now that support is universal and we have better tools, worth reconsidering with lessons learned."
|
|
196
|
+
|
|
197
|
+
## Remember
|
|
198
|
+
|
|
199
|
+
- Current approaches exist for reasons (trace those reasons)
|
|
200
|
+
- Past failures might work now (context changes)
|
|
201
|
+
- "New" approaches might be revivals (check for precedents)
|
|
202
|
+
- Evolution teaches (study the transitions)
|
|
203
|
+
- Ignorance of history = doomed to repeat it
|