From 20891f3910198bbd4c12d1dbaaa7ff9a0341b4b5 Mon Sep 17 00:00:00 2001 From: Prad Nukala Date: Sun, 9 Aug 2026 14:53:46 -0400 Subject: [PATCH] config(git,claude,ssh): templated gitconfig; claude settings/commands/hooks/skills; ssh config gitconfig: name/email from chezmoi data, gh credential helper by PATH lookup (portable to darwin). claude: no credentials, history, projects, sessions, or plugin caches. ssh config as private_ (0600). Co-Authored-By: Claude Fable 5 --- .beads/interactions.jsonl | 7 + .beads/issues.jsonl | 14 +- dot_claude/commands/bd-drain.md | 118 +++++ dot_claude/commands/cmem-to-beads.md | 140 ++++++ dot_claude/commands/cmem-to-linear.md | 179 +++++++ dot_claude/commands/create-task.md | 102 ++++ dot_claude/commands/rams.md | 104 ++++ .../commands/web-interface-guidelines.md | 180 +++++++ dot_claude/empty_CLAUDE.md | 0 .../hooks/executable_cmem-to-obsidian.py | 203 ++++++++ .../hooks/executable_herdr-agent-state.sh | 101 ++++ dot_claude/hooks/gitnexus/gitnexus-hook.cjs | 155 ++++++ dot_claude/settings.json | 304 ++++++++++++ dot_claude/skills/absurd/SKILL.md | 256 ++++++++++ dot_claude/skills/agents-sdk/SKILL.md | 221 +++++++++ .../agents-sdk/references/browse-the-web.md | 63 +++ .../skills/agents-sdk/references/callable.md | 92 ++++ .../agents-sdk/references/client-sdk.md | 110 ++++ .../skills/agents-sdk/references/codemode.md | 110 ++++ .../agents-sdk/references/configuration.md | 72 +++ .../references/durable-execution.md | 51 ++ .../skills/agents-sdk/references/email.md | 146 ++++++ .../references/human-in-the-loop.md | 67 +++ .../skills/agents-sdk/references/mcp.md | 188 +++++++ .../agents-sdk/references/observability.md | 44 ++ .../agents-sdk/references/queue-retries.md | 79 +++ .../skills/agents-sdk/references/routing.md | 75 +++ .../references/server-driven-messages.md | 63 +++ .../agents-sdk/references/state-scheduling.md | 171 +++++++ .../agents-sdk/references/streaming-chat.md | 198 ++++++++ .../skills/agents-sdk/references/think.md | 112 +++++ .../skills/agents-sdk/references/voice.md | 68 +++ .../agents-sdk/references/webhooks-push.md | 86 ++++ .../skills/agents-sdk/references/workflows.md | 132 +++++ .../skills/cloudflare-email-service/SKILL.md | 103 ++++ .../references/cli-and-mcp.md | 125 +++++ .../references/deliverability.md | 285 +++++++++++ .../references/rest-api.md | 184 +++++++ .../references/routing.md | 199 ++++++++ .../references/sending.md | 252 ++++++++++ .../skills/cloudflare-one-migrations/SKILL.md | 110 ++++ dot_claude/skills/cloudflare-one/SKILL.md | 176 +++++++ dot_claude/skills/cloudflare/SKILL.md | 248 +++++++++ .../references/agents-sdk/README.md | 89 ++++ .../cloudflare/references/agents-sdk/api.md | 190 +++++++ .../references/agents-sdk/configuration.md | 182 +++++++ .../references/agents-sdk/gotchas.md | 158 ++++++ .../references/agents-sdk/patterns.md | 192 +++++++ .../references/ai-gateway/README.md | 175 +++++++ .../references/ai-gateway/configuration.md | 111 +++++ .../references/ai-gateway/dynamic-routing.md | 82 +++ .../references/ai-gateway/features.md | 96 ++++ .../references/ai-gateway/sdk-integration.md | 114 +++++ .../references/ai-gateway/troubleshooting.md | 88 ++++ .../cloudflare/references/ai-search/README.md | 138 ++++++ .../cloudflare/references/ai-search/api.md | 87 ++++ .../references/ai-search/configuration.md | 88 ++++ .../references/ai-search/gotchas.md | 81 +++ .../references/ai-search/patterns.md | 85 ++++ .../references/analytics-engine/README.md | 94 ++++ .../references/analytics-engine/api.md | 112 +++++ .../analytics-engine/configuration.md | 112 +++++ .../references/analytics-engine/gotchas.md | 85 ++++ .../references/analytics-engine/patterns.md | 83 ++++ .../references/api-shield/README.md | 44 ++ .../cloudflare/references/api-shield/api.md | 141 ++++++ .../references/api-shield/configuration.md | 192 +++++++ .../references/api-shield/gotchas.md | 125 +++++ .../references/api-shield/patterns.md | 180 +++++++ .../cloudflare/references/api/README.md | 66 +++ .../skills/cloudflare/references/api/api.md | 204 ++++++++ .../references/api/configuration.md | 160 ++++++ .../cloudflare/references/api/gotchas.md | 225 +++++++++ .../cloudflare/references/api/patterns.md | 204 ++++++++ .../references/argo-smart-routing/README.md | 90 ++++ .../references/argo-smart-routing/api.md | 240 +++++++++ .../argo-smart-routing/configuration.md | 197 ++++++++ .../references/argo-smart-routing/gotchas.md | 111 +++++ .../references/argo-smart-routing/patterns.md | 104 ++++ .../cloudflare/references/artifacts/README.md | 79 +++ .../cloudflare/references/artifacts/api.md | 128 +++++ .../references/artifacts/configuration.md | 92 ++++ .../cloudflare/references/bindings/README.md | 122 +++++ .../cloudflare/references/bindings/api.md | 203 ++++++++ .../references/bindings/configuration.md | 188 +++++++ .../cloudflare/references/bindings/gotchas.md | 208 ++++++++ .../references/bindings/patterns.md | 200 ++++++++ .../references/bot-management/README.md | 94 ++++ .../references/bot-management/api.md | 169 +++++++ .../bot-management/configuration.md | 163 ++++++ .../references/bot-management/gotchas.md | 114 +++++ .../references/bot-management/patterns.md | 182 +++++++ .../references/browser-rendering/README.md | 78 +++ .../references/browser-rendering/api.md | 108 ++++ .../browser-rendering/configuration.md | 78 +++ .../references/browser-rendering/gotchas.md | 88 ++++ .../references/browser-rendering/patterns.md | 91 ++++ .../skills/cloudflare/references/c3/README.md | 111 +++++ .../skills/cloudflare/references/c3/api.md | 71 +++ .../cloudflare/references/c3/configuration.md | 81 +++ .../cloudflare/references/c3/gotchas.md | 92 ++++ .../cloudflare/references/c3/patterns.md | 82 +++ .../references/cache-reserve/README.md | 147 ++++++ .../references/cache-reserve/api.md | 194 ++++++++ .../references/cache-reserve/configuration.md | 169 +++++++ .../references/cache-reserve/gotchas.md | 132 +++++ .../references/cache-reserve/patterns.md | 197 ++++++++ .../references/containers/README.md | 85 ++++ .../cloudflare/references/containers/api.md | 187 +++++++ .../references/containers/configuration.md | 188 +++++++ .../references/containers/gotchas.md | 178 +++++++ .../references/containers/patterns.md | 202 ++++++++ .../references/cron-triggers/README.md | 99 ++++ .../references/cron-triggers/api.md | 196 ++++++++ .../references/cron-triggers/configuration.md | 180 +++++++ .../references/cron-triggers/gotchas.md | 199 ++++++++ .../references/cron-triggers/patterns.md | 190 +++++++ .../skills/cloudflare/references/d1/README.md | 133 +++++ .../skills/cloudflare/references/d1/api.md | 196 ++++++++ .../cloudflare/references/d1/configuration.md | 191 +++++++ .../cloudflare/references/d1/gotchas.md | 98 ++++ .../cloudflare/references/d1/patterns.md | 189 +++++++ .../cloudflare/references/ddos/README.md | 41 ++ .../skills/cloudflare/references/ddos/api.md | 164 ++++++ .../references/ddos/configuration.md | 93 ++++ .../cloudflare/references/ddos/gotchas.md | 107 ++++ .../cloudflare/references/ddos/patterns.md | 174 +++++++ .../references/do-storage/README.md | 75 +++ .../cloudflare/references/do-storage/api.md | 102 ++++ .../references/do-storage/configuration.md | 112 +++++ .../references/do-storage/gotchas.md | 150 ++++++ .../references/do-storage/patterns.md | 194 ++++++++ .../references/do-storage/testing.md | 183 +++++++ .../references/durable-objects/README.md | 185 +++++++ .../references/durable-objects/api.md | 187 +++++++ .../durable-objects/configuration.md | 160 ++++++ .../references/durable-objects/gotchas.md | 197 ++++++++ .../references/durable-objects/patterns.md | 201 ++++++++ .../references/email-routing/README.md | 89 ++++ .../references/email-routing/api.md | 195 ++++++++ .../references/email-routing/configuration.md | 186 +++++++ .../references/email-routing/gotchas.md | 196 ++++++++ .../references/email-routing/patterns.md | 229 +++++++++ .../references/email-workers/README.md | 151 ++++++ .../references/email-workers/api.md | 237 +++++++++ .../references/email-workers/configuration.md | 112 +++++ .../references/email-workers/gotchas.md | 125 +++++ .../references/email-workers/patterns.md | 102 ++++ .../cloudflare/references/flagship/README.md | 59 +++ .../cloudflare/references/flagship/api.md | 390 +++++++++++++++ .../references/flagship/configuration.md | 202 ++++++++ .../cloudflare/references/flagship/gotchas.md | 178 +++++++ .../references/flagship/patterns.md | 469 ++++++++++++++++++ .../references/graphql-api/README.md | 147 ++++++ .../cloudflare/references/graphql-api/api.md | 175 +++++++ .../references/graphql-api/configuration.md | 118 +++++ .../references/graphql-api/gotchas.md | 110 ++++ .../references/graphql-api/patterns.md | 225 +++++++++ .../references/hyperdrive/README.md | 82 +++ .../cloudflare/references/hyperdrive/api.md | 143 ++++++ .../references/hyperdrive/configuration.md | 159 ++++++ .../references/hyperdrive/gotchas.md | 77 +++ .../references/hyperdrive/patterns.md | 190 +++++++ .../cloudflare/references/images/README.md | 61 +++ .../cloudflare/references/images/api.md | 96 ++++ .../references/images/configuration.md | 211 ++++++++ .../cloudflare/references/images/gotchas.md | 99 ++++ .../cloudflare/references/images/patterns.md | 115 +++++ .../skills/cloudflare/references/kv/README.md | 89 ++++ .../skills/cloudflare/references/kv/api.md | 160 ++++++ .../cloudflare/references/kv/configuration.md | 144 ++++++ .../cloudflare/references/kv/gotchas.md | 131 +++++ .../cloudflare/references/kv/patterns.md | 196 ++++++++ .../cloudflare/references/miniflare/README.md | 105 ++++ .../cloudflare/references/miniflare/api.md | 187 +++++++ .../references/miniflare/configuration.md | 173 +++++++ .../references/miniflare/gotchas.md | 160 ++++++ .../references/miniflare/patterns.md | 181 +++++++ .../references/network-interconnect/README.md | 99 ++++ .../references/network-interconnect/api.md | 199 ++++++++ .../network-interconnect/configuration.md | 114 +++++ .../network-interconnect/gotchas.md | 165 ++++++ .../network-interconnect/patterns.md | 166 +++++++ .../references/observability/README.md | 88 ++++ .../references/observability/api.md | 164 ++++++ .../references/observability/configuration.md | 169 +++++++ .../references/observability/gotchas.md | 115 +++++ .../references/observability/patterns.md | 105 ++++ .../references/pages-functions/README.md | 98 ++++ .../references/pages-functions/api.md | 143 ++++++ .../pages-functions/configuration.md | 122 +++++ .../references/pages-functions/gotchas.md | 94 ++++ .../references/pages-functions/patterns.md | 137 +++++ .../cloudflare/references/pages/README.md | 88 ++++ .../skills/cloudflare/references/pages/api.md | 204 ++++++++ .../references/pages/configuration.md | 201 ++++++++ .../cloudflare/references/pages/gotchas.md | 203 ++++++++ .../cloudflare/references/pages/patterns.md | 204 ++++++++ .../cloudflare/references/pipelines/README.md | 90 ++++ .../cloudflare/references/pipelines/api.md | 124 +++++ .../references/pipelines/configuration.md | 155 ++++++ .../references/pipelines/gotchas.md | 58 +++ .../references/pipelines/patterns.md | 130 +++++ .../cloudflare/references/pulumi/README.md | 100 ++++ .../cloudflare/references/pulumi/api.md | 200 ++++++++ .../references/pulumi/configuration.md | 198 ++++++++ .../cloudflare/references/pulumi/gotchas.md | 181 +++++++ .../cloudflare/references/pulumi/patterns.md | 191 +++++++ .../cloudflare/references/queues/README.md | 96 ++++ .../cloudflare/references/queues/api.md | 206 ++++++++ .../references/queues/configuration.md | 144 ++++++ .../cloudflare/references/queues/gotchas.md | 206 ++++++++ .../cloudflare/references/queues/patterns.md | 220 ++++++++ .../references/r2-data-catalog/README.md | 75 +++ .../references/r2-data-catalog/api.md | 122 +++++ .../r2-data-catalog/configuration.md | 98 ++++ .../references/r2-data-catalog/gotchas.md | 55 ++ .../references/r2-data-catalog/patterns.md | 122 +++++ .../cloudflare/references/r2-sql/README.md | 64 +++ .../cloudflare/references/r2-sql/api.md | 121 +++++ .../references/r2-sql/configuration.md | 50 ++ .../cloudflare/references/r2-sql/gotchas.md | 39 ++ .../cloudflare/references/r2-sql/patterns.md | 118 +++++ .../skills/cloudflare/references/r2/README.md | 95 ++++ .../skills/cloudflare/references/r2/api.md | 200 ++++++++ .../cloudflare/references/r2/configuration.md | 165 ++++++ .../cloudflare/references/r2/gotchas.md | 190 +++++++ .../cloudflare/references/r2/patterns.md | 193 +++++++ .../references/realtime-sfu/README.md | 65 +++ .../cloudflare/references/realtime-sfu/api.md | 158 ++++++ .../references/realtime-sfu/configuration.md | 137 +++++ .../references/realtime-sfu/gotchas.md | 133 +++++ .../references/realtime-sfu/patterns.md | 174 +++++++ .../references/realtimekit/README.md | 113 +++++ .../cloudflare/references/realtimekit/api.md | 212 ++++++++ .../references/realtimekit/configuration.md | 203 ++++++++ .../references/realtimekit/gotchas.md | 169 +++++++ .../references/realtimekit/patterns.md | 223 +++++++++ .../cloudflare/references/sandbox/README.md | 96 ++++ .../cloudflare/references/sandbox/api.md | 198 ++++++++ .../references/sandbox/configuration.md | 143 ++++++ .../cloudflare/references/sandbox/gotchas.md | 194 ++++++++ .../cloudflare/references/sandbox/patterns.md | 201 ++++++++ .../references/secrets-store/README.md | 74 +++ .../references/secrets-store/api.md | 200 ++++++++ .../references/secrets-store/configuration.md | 185 +++++++ .../references/secrets-store/gotchas.md | 97 ++++ .../references/secrets-store/patterns.md | 207 ++++++++ .../references/smart-placement/README.md | 138 ++++++ .../references/smart-placement/api.md | 183 +++++++ .../smart-placement/configuration.md | 196 ++++++++ .../references/smart-placement/gotchas.md | 174 +++++++ .../references/smart-placement/patterns.md | 183 +++++++ .../cloudflare/references/snippets/README.md | 68 +++ .../cloudflare/references/snippets/api.md | 198 ++++++++ .../references/snippets/configuration.md | 227 +++++++++ .../cloudflare/references/snippets/gotchas.md | 86 ++++ .../references/snippets/patterns.md | 135 +++++ .../cloudflare/references/spectrum/README.md | 52 ++ .../cloudflare/references/spectrum/api.md | 181 +++++++ .../references/spectrum/configuration.md | 194 ++++++++ .../cloudflare/references/spectrum/gotchas.md | 145 ++++++ .../references/spectrum/patterns.md | 196 ++++++++ .../references/static-assets/README.md | 65 +++ .../references/static-assets/api.md | 199 ++++++++ .../references/static-assets/configuration.md | 186 +++++++ .../references/static-assets/gotchas.md | 162 ++++++ .../references/static-assets/patterns.md | 189 +++++++ .../cloudflare/references/stream/README.md | 114 +++++ .../cloudflare/references/stream/api-live.md | 195 ++++++++ .../cloudflare/references/stream/api.md | 199 ++++++++ .../references/stream/configuration.md | 141 ++++++ .../cloudflare/references/stream/gotchas.md | 130 +++++ .../cloudflare/references/stream/patterns.md | 184 +++++++ .../references/tail-workers/README.md | 89 ++++ .../cloudflare/references/tail-workers/api.md | 200 ++++++++ .../references/tail-workers/configuration.md | 176 +++++++ .../references/tail-workers/gotchas.md | 192 +++++++ .../references/tail-workers/patterns.md | 180 +++++++ .../cloudflare/references/terraform/README.md | 102 ++++ .../cloudflare/references/terraform/api.md | 178 +++++++ .../references/terraform/configuration.md | 197 ++++++++ .../references/terraform/gotchas.md | 150 ++++++ .../references/terraform/patterns.md | 174 +++++++ .../cloudflare/references/tunnel/README.md | 129 +++++ .../cloudflare/references/tunnel/api.md | 193 +++++++ .../references/tunnel/configuration.md | 157 ++++++ .../cloudflare/references/tunnel/gotchas.md | 147 ++++++ .../references/tunnel/networking.md | 168 +++++++ .../cloudflare/references/tunnel/patterns.md | 192 +++++++ .../cloudflare/references/turn/README.md | 82 +++ .../skills/cloudflare/references/turn/api.md | 239 +++++++++ .../references/turn/configuration.md | 179 +++++++ .../cloudflare/references/turn/gotchas.md | 231 +++++++++ .../cloudflare/references/turn/patterns.md | 213 ++++++++ .../cloudflare/references/turnstile/README.md | 99 ++++ .../cloudflare/references/turnstile/api.md | 240 +++++++++ .../references/turnstile/configuration.md | 222 +++++++++ .../references/turnstile/gotchas.md | 218 ++++++++ .../references/turnstile/patterns.md | 193 +++++++ .../cloudflare/references/vectorize/README.md | 133 +++++ .../cloudflare/references/vectorize/api.md | 88 ++++ .../references/vectorize/configuration.md | 88 ++++ .../references/vectorize/gotchas.md | 76 +++ .../references/vectorize/patterns.md | 90 ++++ .../cloudflare/references/waf/README.md | 113 +++++ .../skills/cloudflare/references/waf/api.md | 202 ++++++++ .../references/waf/configuration.md | 203 ++++++++ .../cloudflare/references/waf/gotchas.md | 204 ++++++++ .../cloudflare/references/waf/patterns.md | 197 ++++++++ .../references/web-analytics/README.md | 141 ++++++ .../references/web-analytics/configuration.md | 76 +++ .../references/web-analytics/gotchas.md | 82 +++ .../references/web-analytics/integration.md | 60 +++ .../references/web-analytics/patterns.md | 91 ++++ .../cloudflare/references/workerd/README.md | 78 +++ .../cloudflare/references/workerd/api.md | 185 +++++++ .../references/workerd/configuration.md | 183 +++++++ .../cloudflare/references/workerd/gotchas.md | 139 ++++++ .../cloudflare/references/workerd/patterns.md | 192 +++++++ .../references/workers-ai/README.md | 197 ++++++++ .../cloudflare/references/workers-ai/api.md | 112 +++++ .../references/workers-ai/configuration.md | 97 ++++ .../references/workers-ai/gotchas.md | 114 +++++ .../references/workers-ai/patterns.md | 120 +++++ .../workers-for-platforms/README.md | 89 ++++ .../references/workers-for-platforms/api.md | 196 ++++++++ .../workers-for-platforms/configuration.md | 167 +++++++ .../workers-for-platforms/gotchas.md | 134 +++++ .../workers-for-platforms/patterns.md | 188 +++++++ .../references/workers-playground/README.md | 127 +++++ .../references/workers-playground/api.md | 101 ++++ .../workers-playground/configuration.md | 163 ++++++ .../references/workers-playground/gotchas.md | 88 ++++ .../references/workers-playground/patterns.md | 132 +++++ .../references/workers-vpc/README.md | 127 +++++ .../cloudflare/references/workers-vpc/api.md | 202 ++++++++ .../references/workers-vpc/configuration.md | 147 ++++++ .../references/workers-vpc/gotchas.md | 167 +++++++ .../references/workers-vpc/patterns.md | 209 ++++++++ .../cloudflare/references/workers/README.md | 108 ++++ .../cloudflare/references/workers/api.md | 195 ++++++++ .../references/workers/configuration.md | 185 +++++++ .../references/workers/frameworks.md | 197 ++++++++ .../cloudflare/references/workers/gotchas.md | 137 +++++ .../cloudflare/references/workers/patterns.md | 198 ++++++++ .../cloudflare/references/workflows/README.md | 77 +++ .../cloudflare/references/workflows/api.md | 218 ++++++++ .../references/workflows/configuration.md | 152 ++++++ .../references/workflows/gotchas.md | 90 ++++ .../references/workflows/patterns.md | 175 +++++++ .../cloudflare/references/wrangler/README.md | 135 +++++ .../cloudflare/references/wrangler/api.md | 188 +++++++ .../references/wrangler/configuration.md | 197 ++++++++ .../cloudflare/references/wrangler/gotchas.md | 197 ++++++++ .../references/wrangler/patterns.md | 209 ++++++++ .../zaraz/IMPLEMENTATION_SUMMARY.md | 121 +++++ .../cloudflare/references/zaraz/README.md | 111 +++++ .../skills/cloudflare/references/zaraz/api.md | 112 +++++ .../references/zaraz/configuration.md | 90 ++++ .../cloudflare/references/zaraz/gotchas.md | 81 +++ .../cloudflare/references/zaraz/patterns.md | 74 +++ .../create-beads-orchestration/SKILL.md | 263 ++++++++++ dot_claude/skills/durable-objects/SKILL.md | 186 +++++++ .../durable-objects/references/rules.md | 295 +++++++++++ .../durable-objects/references/testing.md | 264 ++++++++++ .../durable-objects/references/workers.md | 346 +++++++++++++ dot_claude/skills/sandbox-sdk/SKILL.md | 177 +++++++ .../sandbox-sdk/references/api-quick-ref.md | 113 +++++ .../skills/sandbox-sdk/references/examples.md | 49 ++ dot_claude/skills/symlink_blume | 1 + dot_claude/skills/symlink_blume-migrate | 1 + dot_claude/skills/symlink_blume-update-docs | 1 + dot_claude/skills/symlink_brandkit | 1 + dot_claude/skills/symlink_bun-development | 1 + dot_claude/skills/symlink_codebase-design | 1 + dot_claude/skills/symlink_core | 1 + dot_claude/skills/symlink_deepinit | 1 + dot_claude/skills/symlink_design-an-interface | 1 + .../skills/symlink_design-taste-frontend | 1 + dot_claude/skills/symlink_diagnosing-bugs | 1 + dot_claude/skills/symlink_domain-modeling | 1 + dot_claude/skills/symlink_find-skills | 1 + .../skills/symlink_git-guardrails-claude-code | 1 + dot_claude/skills/symlink_golang-pro | 1 + dot_claude/skills/symlink_gpt-taste | 1 + dot_claude/skills/symlink_grill-me | 1 + dot_claude/skills/symlink_grill-with-docs | 1 + dot_claude/skills/symlink_grilling | 1 + dot_claude/skills/symlink_handoff | 1 + .../skills/symlink_high-end-visual-design | 1 + .../skills/symlink_imagegen-frontend-web | 1 + dot_claude/skills/symlink_implement | 1 + .../symlink_improve-codebase-architecture | 1 + dot_claude/skills/symlink_linear | 1 + dot_claude/skills/symlink_linear-cli | 1 + dot_claude/skills/symlink_linear-documents | 1 + dot_claude/skills/symlink_loop-me | 1 + dot_claude/skills/symlink_loopy | 1 + dot_claude/skills/symlink_migrate-to-shoehorn | 1 + dot_claude/skills/symlink_minimalist-ui | 1 + dot_claude/skills/symlink_mintlify | 1 + dot_claude/skills/symlink_mintlify-api | 1 + dot_claude/skills/symlink_mintlify-docs | 1 + dot_claude/skills/symlink_native-sdk | 1 + dot_claude/skills/symlink_obsidian-vault | 1 + .../skills/symlink_openlogs-server-logs | 1 + dot_claude/skills/symlink_prototype | 1 + dot_claude/skills/symlink_qa | 1 + dot_claude/skills/symlink_react | 1 + .../skills/symlink_redesign-existing-projects | 1 + dot_claude/skills/symlink_remix | 1 + .../skills/symlink_request-refactor-plan | 1 + .../skills/symlink_resolving-merge-conflicts | 1 + dot_claude/skills/symlink_rust-async-patterns | 1 + dot_claude/skills/symlink_rust-best-practices | 1 + dot_claude/skills/symlink_rust-testing | 1 + dot_claude/skills/symlink_scaffold-exercises | 1 + .../skills/symlink_setup-matt-pocock-skills | 1 + dot_claude/skills/symlink_setup-pre-commit | 1 + dot_claude/skills/symlink_shadcn | 1 + .../symlink_solidity-foundry-development | 1 + dot_claude/skills/symlink_solidity-security | 1 + dot_claude/skills/symlink_stop-slop | 1 + .../symlink_tanstack-start-best-practices | 1 + dot_claude/skills/symlink_tdd | 1 + dot_claude/skills/symlink_teach | 1 + dot_claude/skills/symlink_triage | 1 + dot_claude/skills/symlink_typescript-expert | 1 + dot_claude/skills/symlink_ubiquitous-language | 1 + dot_claude/skills/symlink_uv-package-manager | 1 + dot_claude/skills/symlink_wrangler | 1 + dot_claude/skills/symlink_write-tests | 1 + dot_claude/skills/symlink_writing-beats | 1 + dot_claude/skills/symlink_writing-fragments | 1 + .../skills/symlink_writing-great-skills | 1 + dot_claude/skills/symlink_writing-shape | 1 + dot_claude/skills/todoist-cli/SKILL.md | 418 ++++++++++++++++ dot_claude/skills/turnstile-spin/README.md | 45 ++ dot_claude/skills/turnstile-spin/SKILL.md | 167 +++++++ .../skills/turnstile-spin/references/astro.md | 102 ++++ .../skills/turnstile-spin/references/hugo.md | 62 +++ .../turnstile-spin/references/nextjs-app.md | 110 ++++ .../turnstile-spin/references/nextjs-pages.md | 59 +++ .../turnstile-spin/references/sveltekit.md | 84 ++++ .../turnstile-spin/references/vanilla-html.md | 62 +++ .../scripts/executable_auth-probe.sh | 96 ++++ .../scripts/executable_fetch-secret.sh | 66 +++ .../scripts/executable_persist-skill.sh | 53 ++ .../scripts/executable_validate.sh | 87 ++++ .../scripts/executable_widget-create.sh | 57 +++ .../scripts/executable_worker-deploy.sh | 102 ++++ .../turnstile-spin/templates/worker/LICENSE | 21 + .../turnstile-spin/templates/worker/README.md | 196 ++++++++ .../templates/worker/dot_gitignore | 9 + .../templates/worker/package.json | 39 ++ .../templates/worker/public/post-deploy.html | 287 +++++++++++ .../templates/worker/src/errors.ts | 29 ++ .../templates/worker/src/index.ts | 199 ++++++++ .../templates/worker/src/observability.ts | 34 ++ .../templates/worker/src/types.ts | 95 ++++ .../templates/worker/src/validate.ts | 101 ++++ .../templates/worker/test/deploy.test.ts | 71 +++ .../templates/worker/test/integration.test.ts | 87 ++++ .../templates/worker/test/unit.test.ts | 372 ++++++++++++++ .../templates/worker/test/validation.test.ts | 201 ++++++++ .../templates/worker/tsconfig.json | 24 + .../templates/worker/vitest.config.ts | 12 + .../templates/worker/wrangler.toml | 36 ++ .../skills/turnstile-spin/tests/validation.md | 69 +++ dot_claude/skills/web-perf/SKILL.md | 201 ++++++++ .../skills/workers-best-practices/SKILL.md | 127 +++++ .../references/review.md | 174 +++++++ .../references/rules.md | 463 +++++++++++++++++ dot_gitconfig.tmpl | 61 +++ private_dot_ssh/private_config | 15 + 476 files changed, 59086 insertions(+), 7 deletions(-) create mode 100644 dot_claude/commands/bd-drain.md create mode 100644 dot_claude/commands/cmem-to-beads.md create mode 100644 dot_claude/commands/cmem-to-linear.md create mode 100644 dot_claude/commands/create-task.md create mode 100644 dot_claude/commands/rams.md create mode 100644 dot_claude/commands/web-interface-guidelines.md create mode 100644 dot_claude/empty_CLAUDE.md create mode 100644 dot_claude/hooks/executable_cmem-to-obsidian.py create mode 100644 dot_claude/hooks/executable_herdr-agent-state.sh create mode 100644 dot_claude/hooks/gitnexus/gitnexus-hook.cjs create mode 100644 dot_claude/settings.json create mode 100644 dot_claude/skills/absurd/SKILL.md create mode 100644 dot_claude/skills/agents-sdk/SKILL.md create mode 100644 dot_claude/skills/agents-sdk/references/browse-the-web.md create mode 100644 dot_claude/skills/agents-sdk/references/callable.md create mode 100644 dot_claude/skills/agents-sdk/references/client-sdk.md create mode 100644 dot_claude/skills/agents-sdk/references/codemode.md create mode 100644 dot_claude/skills/agents-sdk/references/configuration.md create mode 100644 dot_claude/skills/agents-sdk/references/durable-execution.md create mode 100644 dot_claude/skills/agents-sdk/references/email.md create mode 100644 dot_claude/skills/agents-sdk/references/human-in-the-loop.md create mode 100644 dot_claude/skills/agents-sdk/references/mcp.md create mode 100644 dot_claude/skills/agents-sdk/references/observability.md create mode 100644 dot_claude/skills/agents-sdk/references/queue-retries.md create mode 100644 dot_claude/skills/agents-sdk/references/routing.md create mode 100644 dot_claude/skills/agents-sdk/references/server-driven-messages.md create mode 100644 dot_claude/skills/agents-sdk/references/state-scheduling.md create mode 100644 dot_claude/skills/agents-sdk/references/streaming-chat.md create mode 100644 dot_claude/skills/agents-sdk/references/think.md create mode 100644 dot_claude/skills/agents-sdk/references/voice.md create mode 100644 dot_claude/skills/agents-sdk/references/webhooks-push.md create mode 100644 dot_claude/skills/agents-sdk/references/workflows.md create mode 100644 dot_claude/skills/cloudflare-email-service/SKILL.md create mode 100644 dot_claude/skills/cloudflare-email-service/references/cli-and-mcp.md create mode 100644 dot_claude/skills/cloudflare-email-service/references/deliverability.md create mode 100644 dot_claude/skills/cloudflare-email-service/references/rest-api.md create mode 100644 dot_claude/skills/cloudflare-email-service/references/routing.md create mode 100644 dot_claude/skills/cloudflare-email-service/references/sending.md create mode 100644 dot_claude/skills/cloudflare-one-migrations/SKILL.md create mode 100644 dot_claude/skills/cloudflare-one/SKILL.md create mode 100644 dot_claude/skills/cloudflare/SKILL.md create mode 100644 dot_claude/skills/cloudflare/references/agents-sdk/README.md create mode 100644 dot_claude/skills/cloudflare/references/agents-sdk/api.md create mode 100644 dot_claude/skills/cloudflare/references/agents-sdk/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/agents-sdk/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/agents-sdk/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/ai-gateway/README.md create mode 100644 dot_claude/skills/cloudflare/references/ai-gateway/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/ai-gateway/dynamic-routing.md create mode 100644 dot_claude/skills/cloudflare/references/ai-gateway/features.md create mode 100644 dot_claude/skills/cloudflare/references/ai-gateway/sdk-integration.md create mode 100644 dot_claude/skills/cloudflare/references/ai-gateway/troubleshooting.md create mode 100644 dot_claude/skills/cloudflare/references/ai-search/README.md create mode 100644 dot_claude/skills/cloudflare/references/ai-search/api.md create mode 100644 dot_claude/skills/cloudflare/references/ai-search/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/ai-search/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/ai-search/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/analytics-engine/README.md create mode 100644 dot_claude/skills/cloudflare/references/analytics-engine/api.md create mode 100644 dot_claude/skills/cloudflare/references/analytics-engine/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/analytics-engine/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/analytics-engine/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/api-shield/README.md create mode 100644 dot_claude/skills/cloudflare/references/api-shield/api.md create mode 100644 dot_claude/skills/cloudflare/references/api-shield/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/api-shield/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/api-shield/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/api/README.md create mode 100644 dot_claude/skills/cloudflare/references/api/api.md create mode 100644 dot_claude/skills/cloudflare/references/api/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/api/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/api/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/argo-smart-routing/README.md create mode 100644 dot_claude/skills/cloudflare/references/argo-smart-routing/api.md create mode 100644 dot_claude/skills/cloudflare/references/argo-smart-routing/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/argo-smart-routing/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/argo-smart-routing/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/artifacts/README.md create mode 100644 dot_claude/skills/cloudflare/references/artifacts/api.md create mode 100644 dot_claude/skills/cloudflare/references/artifacts/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/bindings/README.md create mode 100644 dot_claude/skills/cloudflare/references/bindings/api.md create mode 100644 dot_claude/skills/cloudflare/references/bindings/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/bindings/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/bindings/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/bot-management/README.md create mode 100644 dot_claude/skills/cloudflare/references/bot-management/api.md create mode 100644 dot_claude/skills/cloudflare/references/bot-management/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/bot-management/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/bot-management/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/browser-rendering/README.md create mode 100644 dot_claude/skills/cloudflare/references/browser-rendering/api.md create mode 100644 dot_claude/skills/cloudflare/references/browser-rendering/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/browser-rendering/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/browser-rendering/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/c3/README.md create mode 100644 dot_claude/skills/cloudflare/references/c3/api.md create mode 100644 dot_claude/skills/cloudflare/references/c3/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/c3/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/c3/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/cache-reserve/README.md create mode 100644 dot_claude/skills/cloudflare/references/cache-reserve/api.md create mode 100644 dot_claude/skills/cloudflare/references/cache-reserve/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/cache-reserve/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/cache-reserve/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/containers/README.md create mode 100644 dot_claude/skills/cloudflare/references/containers/api.md create mode 100644 dot_claude/skills/cloudflare/references/containers/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/containers/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/containers/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/cron-triggers/README.md create mode 100644 dot_claude/skills/cloudflare/references/cron-triggers/api.md create mode 100644 dot_claude/skills/cloudflare/references/cron-triggers/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/cron-triggers/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/cron-triggers/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/d1/README.md create mode 100644 dot_claude/skills/cloudflare/references/d1/api.md create mode 100644 dot_claude/skills/cloudflare/references/d1/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/d1/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/d1/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/ddos/README.md create mode 100644 dot_claude/skills/cloudflare/references/ddos/api.md create mode 100644 dot_claude/skills/cloudflare/references/ddos/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/ddos/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/ddos/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/do-storage/README.md create mode 100644 dot_claude/skills/cloudflare/references/do-storage/api.md create mode 100644 dot_claude/skills/cloudflare/references/do-storage/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/do-storage/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/do-storage/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/do-storage/testing.md create mode 100644 dot_claude/skills/cloudflare/references/durable-objects/README.md create mode 100644 dot_claude/skills/cloudflare/references/durable-objects/api.md create mode 100644 dot_claude/skills/cloudflare/references/durable-objects/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/durable-objects/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/durable-objects/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/email-routing/README.md create mode 100644 dot_claude/skills/cloudflare/references/email-routing/api.md create mode 100644 dot_claude/skills/cloudflare/references/email-routing/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/email-routing/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/email-routing/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/email-workers/README.md create mode 100644 dot_claude/skills/cloudflare/references/email-workers/api.md create mode 100644 dot_claude/skills/cloudflare/references/email-workers/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/email-workers/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/email-workers/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/flagship/README.md create mode 100644 dot_claude/skills/cloudflare/references/flagship/api.md create mode 100644 dot_claude/skills/cloudflare/references/flagship/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/flagship/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/flagship/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/graphql-api/README.md create mode 100644 dot_claude/skills/cloudflare/references/graphql-api/api.md create mode 100644 dot_claude/skills/cloudflare/references/graphql-api/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/graphql-api/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/graphql-api/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/hyperdrive/README.md create mode 100644 dot_claude/skills/cloudflare/references/hyperdrive/api.md create mode 100644 dot_claude/skills/cloudflare/references/hyperdrive/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/hyperdrive/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/hyperdrive/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/images/README.md create mode 100644 dot_claude/skills/cloudflare/references/images/api.md create mode 100644 dot_claude/skills/cloudflare/references/images/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/images/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/images/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/kv/README.md create mode 100644 dot_claude/skills/cloudflare/references/kv/api.md create mode 100644 dot_claude/skills/cloudflare/references/kv/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/kv/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/kv/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/miniflare/README.md create mode 100644 dot_claude/skills/cloudflare/references/miniflare/api.md create mode 100644 dot_claude/skills/cloudflare/references/miniflare/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/miniflare/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/miniflare/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/network-interconnect/README.md create mode 100644 dot_claude/skills/cloudflare/references/network-interconnect/api.md create mode 100644 dot_claude/skills/cloudflare/references/network-interconnect/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/network-interconnect/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/network-interconnect/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/observability/README.md create mode 100644 dot_claude/skills/cloudflare/references/observability/api.md create mode 100644 dot_claude/skills/cloudflare/references/observability/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/observability/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/observability/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/pages-functions/README.md create mode 100644 dot_claude/skills/cloudflare/references/pages-functions/api.md create mode 100644 dot_claude/skills/cloudflare/references/pages-functions/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/pages-functions/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/pages-functions/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/pages/README.md create mode 100644 dot_claude/skills/cloudflare/references/pages/api.md create mode 100644 dot_claude/skills/cloudflare/references/pages/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/pages/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/pages/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/pipelines/README.md create mode 100644 dot_claude/skills/cloudflare/references/pipelines/api.md create mode 100644 dot_claude/skills/cloudflare/references/pipelines/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/pipelines/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/pipelines/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/pulumi/README.md create mode 100644 dot_claude/skills/cloudflare/references/pulumi/api.md create mode 100644 dot_claude/skills/cloudflare/references/pulumi/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/pulumi/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/pulumi/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/queues/README.md create mode 100644 dot_claude/skills/cloudflare/references/queues/api.md create mode 100644 dot_claude/skills/cloudflare/references/queues/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/queues/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/queues/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/r2-data-catalog/README.md create mode 100644 dot_claude/skills/cloudflare/references/r2-data-catalog/api.md create mode 100644 dot_claude/skills/cloudflare/references/r2-data-catalog/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/r2-data-catalog/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/r2-data-catalog/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/r2-sql/README.md create mode 100644 dot_claude/skills/cloudflare/references/r2-sql/api.md create mode 100644 dot_claude/skills/cloudflare/references/r2-sql/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/r2-sql/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/r2-sql/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/r2/README.md create mode 100644 dot_claude/skills/cloudflare/references/r2/api.md create mode 100644 dot_claude/skills/cloudflare/references/r2/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/r2/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/r2/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/realtime-sfu/README.md create mode 100644 dot_claude/skills/cloudflare/references/realtime-sfu/api.md create mode 100644 dot_claude/skills/cloudflare/references/realtime-sfu/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/realtime-sfu/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/realtime-sfu/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/realtimekit/README.md create mode 100644 dot_claude/skills/cloudflare/references/realtimekit/api.md create mode 100644 dot_claude/skills/cloudflare/references/realtimekit/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/realtimekit/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/realtimekit/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/sandbox/README.md create mode 100644 dot_claude/skills/cloudflare/references/sandbox/api.md create mode 100644 dot_claude/skills/cloudflare/references/sandbox/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/sandbox/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/sandbox/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/secrets-store/README.md create mode 100644 dot_claude/skills/cloudflare/references/secrets-store/api.md create mode 100644 dot_claude/skills/cloudflare/references/secrets-store/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/secrets-store/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/secrets-store/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/smart-placement/README.md create mode 100644 dot_claude/skills/cloudflare/references/smart-placement/api.md create mode 100644 dot_claude/skills/cloudflare/references/smart-placement/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/smart-placement/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/smart-placement/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/snippets/README.md create mode 100644 dot_claude/skills/cloudflare/references/snippets/api.md create mode 100644 dot_claude/skills/cloudflare/references/snippets/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/snippets/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/snippets/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/spectrum/README.md create mode 100644 dot_claude/skills/cloudflare/references/spectrum/api.md create mode 100644 dot_claude/skills/cloudflare/references/spectrum/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/spectrum/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/spectrum/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/static-assets/README.md create mode 100644 dot_claude/skills/cloudflare/references/static-assets/api.md create mode 100644 dot_claude/skills/cloudflare/references/static-assets/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/static-assets/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/static-assets/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/stream/README.md create mode 100644 dot_claude/skills/cloudflare/references/stream/api-live.md create mode 100644 dot_claude/skills/cloudflare/references/stream/api.md create mode 100644 dot_claude/skills/cloudflare/references/stream/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/stream/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/stream/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/tail-workers/README.md create mode 100644 dot_claude/skills/cloudflare/references/tail-workers/api.md create mode 100644 dot_claude/skills/cloudflare/references/tail-workers/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/tail-workers/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/tail-workers/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/terraform/README.md create mode 100644 dot_claude/skills/cloudflare/references/terraform/api.md create mode 100644 dot_claude/skills/cloudflare/references/terraform/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/terraform/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/terraform/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/tunnel/README.md create mode 100644 dot_claude/skills/cloudflare/references/tunnel/api.md create mode 100644 dot_claude/skills/cloudflare/references/tunnel/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/tunnel/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/tunnel/networking.md create mode 100644 dot_claude/skills/cloudflare/references/tunnel/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/turn/README.md create mode 100644 dot_claude/skills/cloudflare/references/turn/api.md create mode 100644 dot_claude/skills/cloudflare/references/turn/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/turn/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/turn/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/turnstile/README.md create mode 100644 dot_claude/skills/cloudflare/references/turnstile/api.md create mode 100644 dot_claude/skills/cloudflare/references/turnstile/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/turnstile/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/turnstile/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/vectorize/README.md create mode 100644 dot_claude/skills/cloudflare/references/vectorize/api.md create mode 100644 dot_claude/skills/cloudflare/references/vectorize/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/vectorize/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/vectorize/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/waf/README.md create mode 100644 dot_claude/skills/cloudflare/references/waf/api.md create mode 100644 dot_claude/skills/cloudflare/references/waf/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/waf/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/waf/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/web-analytics/README.md create mode 100644 dot_claude/skills/cloudflare/references/web-analytics/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/web-analytics/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/web-analytics/integration.md create mode 100644 dot_claude/skills/cloudflare/references/web-analytics/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/workerd/README.md create mode 100644 dot_claude/skills/cloudflare/references/workerd/api.md create mode 100644 dot_claude/skills/cloudflare/references/workerd/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/workerd/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/workerd/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/workers-ai/README.md create mode 100644 dot_claude/skills/cloudflare/references/workers-ai/api.md create mode 100644 dot_claude/skills/cloudflare/references/workers-ai/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/workers-ai/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/workers-ai/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/workers-for-platforms/README.md create mode 100644 dot_claude/skills/cloudflare/references/workers-for-platforms/api.md create mode 100644 dot_claude/skills/cloudflare/references/workers-for-platforms/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/workers-for-platforms/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/workers-for-platforms/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/workers-playground/README.md create mode 100644 dot_claude/skills/cloudflare/references/workers-playground/api.md create mode 100644 dot_claude/skills/cloudflare/references/workers-playground/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/workers-playground/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/workers-playground/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/workers-vpc/README.md create mode 100644 dot_claude/skills/cloudflare/references/workers-vpc/api.md create mode 100644 dot_claude/skills/cloudflare/references/workers-vpc/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/workers-vpc/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/workers-vpc/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/workers/README.md create mode 100644 dot_claude/skills/cloudflare/references/workers/api.md create mode 100644 dot_claude/skills/cloudflare/references/workers/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/workers/frameworks.md create mode 100644 dot_claude/skills/cloudflare/references/workers/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/workers/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/workflows/README.md create mode 100644 dot_claude/skills/cloudflare/references/workflows/api.md create mode 100644 dot_claude/skills/cloudflare/references/workflows/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/workflows/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/workflows/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/wrangler/README.md create mode 100644 dot_claude/skills/cloudflare/references/wrangler/api.md create mode 100644 dot_claude/skills/cloudflare/references/wrangler/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/wrangler/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/wrangler/patterns.md create mode 100644 dot_claude/skills/cloudflare/references/zaraz/IMPLEMENTATION_SUMMARY.md create mode 100644 dot_claude/skills/cloudflare/references/zaraz/README.md create mode 100644 dot_claude/skills/cloudflare/references/zaraz/api.md create mode 100644 dot_claude/skills/cloudflare/references/zaraz/configuration.md create mode 100644 dot_claude/skills/cloudflare/references/zaraz/gotchas.md create mode 100644 dot_claude/skills/cloudflare/references/zaraz/patterns.md create mode 100644 dot_claude/skills/create-beads-orchestration/SKILL.md create mode 100644 dot_claude/skills/durable-objects/SKILL.md create mode 100644 dot_claude/skills/durable-objects/references/rules.md create mode 100644 dot_claude/skills/durable-objects/references/testing.md create mode 100644 dot_claude/skills/durable-objects/references/workers.md create mode 100644 dot_claude/skills/sandbox-sdk/SKILL.md create mode 100644 dot_claude/skills/sandbox-sdk/references/api-quick-ref.md create mode 100644 dot_claude/skills/sandbox-sdk/references/examples.md create mode 100644 dot_claude/skills/symlink_blume create mode 100644 dot_claude/skills/symlink_blume-migrate create mode 100644 dot_claude/skills/symlink_blume-update-docs create mode 100644 dot_claude/skills/symlink_brandkit create mode 100644 dot_claude/skills/symlink_bun-development create mode 100644 dot_claude/skills/symlink_codebase-design create mode 100644 dot_claude/skills/symlink_core create mode 100644 dot_claude/skills/symlink_deepinit create mode 100644 dot_claude/skills/symlink_design-an-interface create mode 100644 dot_claude/skills/symlink_design-taste-frontend create mode 100644 dot_claude/skills/symlink_diagnosing-bugs create mode 100644 dot_claude/skills/symlink_domain-modeling create mode 100644 dot_claude/skills/symlink_find-skills create mode 100644 dot_claude/skills/symlink_git-guardrails-claude-code create mode 100644 dot_claude/skills/symlink_golang-pro create mode 100644 dot_claude/skills/symlink_gpt-taste create mode 100644 dot_claude/skills/symlink_grill-me create mode 100644 dot_claude/skills/symlink_grill-with-docs create mode 100644 dot_claude/skills/symlink_grilling create mode 100644 dot_claude/skills/symlink_handoff create mode 100644 dot_claude/skills/symlink_high-end-visual-design create mode 100644 dot_claude/skills/symlink_imagegen-frontend-web create mode 100644 dot_claude/skills/symlink_implement create mode 100644 dot_claude/skills/symlink_improve-codebase-architecture create mode 100644 dot_claude/skills/symlink_linear create mode 100644 dot_claude/skills/symlink_linear-cli create mode 100644 dot_claude/skills/symlink_linear-documents create mode 100644 dot_claude/skills/symlink_loop-me create mode 100644 dot_claude/skills/symlink_loopy create mode 100644 dot_claude/skills/symlink_migrate-to-shoehorn create mode 100644 dot_claude/skills/symlink_minimalist-ui create mode 100644 dot_claude/skills/symlink_mintlify create mode 100644 dot_claude/skills/symlink_mintlify-api create mode 100644 dot_claude/skills/symlink_mintlify-docs create mode 100644 dot_claude/skills/symlink_native-sdk create mode 100644 dot_claude/skills/symlink_obsidian-vault create mode 100644 dot_claude/skills/symlink_openlogs-server-logs create mode 100644 dot_claude/skills/symlink_prototype create mode 100644 dot_claude/skills/symlink_qa create mode 100644 dot_claude/skills/symlink_react create mode 100644 dot_claude/skills/symlink_redesign-existing-projects create mode 100644 dot_claude/skills/symlink_remix create mode 100644 dot_claude/skills/symlink_request-refactor-plan create mode 100644 dot_claude/skills/symlink_resolving-merge-conflicts create mode 100644 dot_claude/skills/symlink_rust-async-patterns create mode 100644 dot_claude/skills/symlink_rust-best-practices create mode 100644 dot_claude/skills/symlink_rust-testing create mode 100644 dot_claude/skills/symlink_scaffold-exercises create mode 100644 dot_claude/skills/symlink_setup-matt-pocock-skills create mode 100644 dot_claude/skills/symlink_setup-pre-commit create mode 100644 dot_claude/skills/symlink_shadcn create mode 100644 dot_claude/skills/symlink_solidity-foundry-development create mode 100644 dot_claude/skills/symlink_solidity-security create mode 100644 dot_claude/skills/symlink_stop-slop create mode 100644 dot_claude/skills/symlink_tanstack-start-best-practices create mode 100644 dot_claude/skills/symlink_tdd create mode 100644 dot_claude/skills/symlink_teach create mode 100644 dot_claude/skills/symlink_triage create mode 100644 dot_claude/skills/symlink_typescript-expert create mode 100644 dot_claude/skills/symlink_ubiquitous-language create mode 100644 dot_claude/skills/symlink_uv-package-manager create mode 100644 dot_claude/skills/symlink_wrangler create mode 100644 dot_claude/skills/symlink_write-tests create mode 100644 dot_claude/skills/symlink_writing-beats create mode 100644 dot_claude/skills/symlink_writing-fragments create mode 100644 dot_claude/skills/symlink_writing-great-skills create mode 100644 dot_claude/skills/symlink_writing-shape create mode 100644 dot_claude/skills/todoist-cli/SKILL.md create mode 100644 dot_claude/skills/turnstile-spin/README.md create mode 100644 dot_claude/skills/turnstile-spin/SKILL.md create mode 100644 dot_claude/skills/turnstile-spin/references/astro.md create mode 100644 dot_claude/skills/turnstile-spin/references/hugo.md create mode 100644 dot_claude/skills/turnstile-spin/references/nextjs-app.md create mode 100644 dot_claude/skills/turnstile-spin/references/nextjs-pages.md create mode 100644 dot_claude/skills/turnstile-spin/references/sveltekit.md create mode 100644 dot_claude/skills/turnstile-spin/references/vanilla-html.md create mode 100644 dot_claude/skills/turnstile-spin/scripts/executable_auth-probe.sh create mode 100644 dot_claude/skills/turnstile-spin/scripts/executable_fetch-secret.sh create mode 100644 dot_claude/skills/turnstile-spin/scripts/executable_persist-skill.sh create mode 100644 dot_claude/skills/turnstile-spin/scripts/executable_validate.sh create mode 100644 dot_claude/skills/turnstile-spin/scripts/executable_widget-create.sh create mode 100644 dot_claude/skills/turnstile-spin/scripts/executable_worker-deploy.sh create mode 100644 dot_claude/skills/turnstile-spin/templates/worker/LICENSE create mode 100644 dot_claude/skills/turnstile-spin/templates/worker/README.md create mode 100644 dot_claude/skills/turnstile-spin/templates/worker/dot_gitignore create mode 100644 dot_claude/skills/turnstile-spin/templates/worker/package.json create mode 100644 dot_claude/skills/turnstile-spin/templates/worker/public/post-deploy.html create mode 100644 dot_claude/skills/turnstile-spin/templates/worker/src/errors.ts create mode 100644 dot_claude/skills/turnstile-spin/templates/worker/src/index.ts create mode 100644 dot_claude/skills/turnstile-spin/templates/worker/src/observability.ts create mode 100644 dot_claude/skills/turnstile-spin/templates/worker/src/types.ts create mode 100644 dot_claude/skills/turnstile-spin/templates/worker/src/validate.ts create mode 100644 dot_claude/skills/turnstile-spin/templates/worker/test/deploy.test.ts create mode 100644 dot_claude/skills/turnstile-spin/templates/worker/test/integration.test.ts create mode 100644 dot_claude/skills/turnstile-spin/templates/worker/test/unit.test.ts create mode 100644 dot_claude/skills/turnstile-spin/templates/worker/test/validation.test.ts create mode 100644 dot_claude/skills/turnstile-spin/templates/worker/tsconfig.json create mode 100644 dot_claude/skills/turnstile-spin/templates/worker/vitest.config.ts create mode 100644 dot_claude/skills/turnstile-spin/templates/worker/wrangler.toml create mode 100644 dot_claude/skills/turnstile-spin/tests/validation.md create mode 100644 dot_claude/skills/web-perf/SKILL.md create mode 100644 dot_claude/skills/workers-best-practices/SKILL.md create mode 100644 dot_claude/skills/workers-best-practices/references/review.md create mode 100644 dot_claude/skills/workers-best-practices/references/rules.md create mode 100644 dot_gitconfig.tmpl create mode 100644 private_dot_ssh/private_config diff --git a/.beads/interactions.jsonl b/.beads/interactions.jsonl index 368d93a..018b5eb 100644 --- a/.beads/interactions.jsonl +++ b/.beads/interactions.jsonl @@ -12,3 +12,10 @@ {"id":"int-68e58a83","kind":"field_change","created_at":"2026-08-09T18:52:20.158250426Z","actor":"Prad Nukala","issue_id":"chezmoi-xi5","extra":{"field":"status","new_value":"in_progress","old_value":"open"}} {"id":"int-7b4d4c0d","kind":"field_change","created_at":"2026-08-09T18:52:41.13963999Z","actor":"Prad Nukala","issue_id":"chezmoi-xi5","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"tmux.conf real content (was symlink_); no vertical geometry present; plugins unmanaged, tpm bootstrap in post script"}} {"id":"int-e52df1d7","kind":"field_change","created_at":"2026-08-09T18:52:41.350493498Z","actor":"Prad Nukala","issue_id":"chezmoi-utl","extra":{"field":"status","new_value":"in_progress","old_value":"open"}} +{"id":"int-9f6276b6","kind":"field_change","created_at":"2026-08-09T18:53:14.172501264Z","actor":"Prad Nukala","issue_id":"chezmoi-utl","extra":{"field":"status","new_value":"closed","old_value":"in_progress","reason":"Closed"}} +{"id":"int-99fddaae","kind":"field_change","created_at":"2026-08-09T18:53:14.324562287Z","actor":"Prad Nukala","issue_id":"chezmoi-hou","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"Closed"}} +{"id":"int-5e972502","kind":"field_change","created_at":"2026-08-09T18:53:14.477632454Z","actor":"Prad Nukala","issue_id":"chezmoi-x7f","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"Closed"}} +{"id":"int-2eaa43fb","kind":"field_change","created_at":"2026-08-09T18:53:14.636752198Z","actor":"Prad Nukala","issue_id":"chezmoi-4sj","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"Closed"}} +{"id":"int-ec238d3e","kind":"field_change","created_at":"2026-08-09T18:53:14.795389276Z","actor":"Prad Nukala","issue_id":"chezmoi-21v","extra":{"field":"status","new_value":"closed","old_value":"open","reason":"Closed"}} +{"id":"int-1e6b9af3","kind":"field_change","created_at":"2026-08-09T18:53:15.496566548Z","actor":"Prad Nukala","issue_id":"chezmoi-a2k","extra":{"field":"status","new_value":"in_progress","old_value":"open"}} +{"id":"int-bcfce2e0","kind":"field_change","created_at":"2026-08-09T18:53:15.63271081Z","actor":"Prad Nukala","issue_id":"chezmoi-exq","extra":{"field":"status","new_value":"in_progress","old_value":"open"}} diff --git a/.beads/issues.jsonl b/.beads/issues.jsonl index 577e0f3..300160b 100644 --- a/.beads/issues.jsonl +++ b/.beads/issues.jsonl @@ -6,14 +6,14 @@ {"_type":"issue","id":"chezmoi-9sg","title":"Arch layer: niri, noctalia, fontconfig, mimeapps, systemd user units — linux-gated","description":"niri config.d split preserved with exact_ dir; noctalia; fontconfig; mimeapps.list; systemd user units; foot/alacritty if live. All gated in .chezmoiignore.tmpl for darwin. niri validate must pass.","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:17Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:17Z","dependencies":[{"issue_id":"chezmoi-9sg","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:52Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-9sg","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:52Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"chezmoi-iu2","title":"packages.yaml: translate dotstate manifests + live state into declarative manifest","description":"Curate Noctalia pacman list (drop base-system noise), custom installers, cargo/go tools, shared gh_extensions; darwin brew/cask section. Install scripts run_onchange keyed on yaml hash: pacman --needed + paru | brew loop; gh extension install loop; linux systemctl --user enable; post: fc-cache, bat cache.","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:17Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:17Z","dependencies":[{"issue_id":"chezmoi-iu2","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:53Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-iu2","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:53Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"chezmoi-udp","title":"Validation: darwin simulation","description":"chezmoi execute-template with os=darwin on every .tmpl; darwin-mode dry-run apply writes zero linux-gated paths, errors on nothing. Full Mac apply deferred until hardware available.","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:17Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:17Z","dependencies":[{"issue_id":"chezmoi-udp","depends_on_id":"chezmoi-21v","type":"blocks","created_at":"2026-08-09T14:43:01Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-udp","depends_on_id":"chezmoi-4sj","type":"blocks","created_at":"2026-08-09T14:43:00Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-udp","depends_on_id":"chezmoi-9sg","type":"blocks","created_at":"2026-08-09T14:43:01Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-udp","depends_on_id":"chezmoi-a2k","type":"blocks","created_at":"2026-08-09T14:43:01Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-udp","depends_on_id":"chezmoi-exq","type":"blocks","created_at":"2026-08-09T14:43:01Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-udp","depends_on_id":"chezmoi-fde","type":"blocks","created_at":"2026-08-09T14:43:01Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-udp","depends_on_id":"chezmoi-hou","type":"blocks","created_at":"2026-08-09T14:43:00Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-udp","depends_on_id":"chezmoi-iu2","type":"blocks","created_at":"2026-08-09T14:43:01Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-udp","depends_on_id":"chezmoi-sd9","type":"blocks","created_at":"2026-08-09T14:43:00Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-udp","depends_on_id":"chezmoi-utl","type":"blocks","created_at":"2026-08-09T14:43:00Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-udp","depends_on_id":"chezmoi-uw2","type":"blocks","created_at":"2026-08-09T14:42:59Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-udp","depends_on_id":"chezmoi-x7f","type":"blocks","created_at":"2026-08-09T14:43:00Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-udp","depends_on_id":"chezmoi-xi5","type":"blocks","created_at":"2026-08-09T14:43:00Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":13,"dependent_count":1,"comment_count":0} -{"_type":"issue","id":"chezmoi-21v","title":"gh: config file + declarative extension list","description":"~/.config/gh config.yml (hosts.yml has oauth token - exclude/encrypt). Extensions: clean-branches, commit, dash, notify into packages.yaml shared.gh_extensions.","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:06Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:06Z","dependencies":[{"issue_id":"chezmoi-21v","depends_on_id":"chezmoi-1a0","type":"blocks","created_at":"2026-08-09T14:42:24Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-21v","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:51Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-21v","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:51Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":3,"dependent_count":2,"comment_count":0} -{"_type":"issue","id":"chezmoi-4sj","title":"lazydocker: static config from live","description":"~/.config/lazydocker (not in dotstate).","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:06Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:06Z","dependencies":[{"issue_id":"chezmoi-4sj","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:51Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-4sj","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:51Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} -{"_type":"issue","id":"chezmoi-a2k","title":"claude: settings, commands, agents, hooks, skills only","description":"~/.claude: settings.json, commands/, hooks/, skills/, CLAUDE.md. Never credentials/history/projects/sessions.","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:06Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:06Z","dependencies":[{"issue_id":"chezmoi-a2k","depends_on_id":"chezmoi-1a0","type":"blocks","created_at":"2026-08-09T14:42:24Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-a2k","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:52Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-a2k","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:52Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":3,"dependent_count":2,"comment_count":0} -{"_type":"issue","id":"chezmoi-exq","title":"git: dot_gitconfig.tmpl with templated email/signing key","description":"~/.gitconfig from live; email + signing key from chezmoi data.","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:06Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:06Z","dependencies":[{"issue_id":"chezmoi-exq","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:52Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-exq","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:52Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} +{"_type":"issue","id":"chezmoi-21v","title":"gh: config file + declarative extension list","description":"~/.config/gh config.yml (hosts.yml has oauth token - exclude/encrypt). Extensions: clean-branches, commit, dash, notify into packages.yaml shared.gh_extensions.","status":"closed","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:06Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:53:15Z","closed_at":"2026-08-09T18:53:15Z","close_reason":"Closed","dependencies":[{"issue_id":"chezmoi-21v","depends_on_id":"chezmoi-1a0","type":"blocks","created_at":"2026-08-09T14:42:24Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-21v","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:51Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-21v","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:51Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":3,"dependent_count":2,"comment_count":0} +{"_type":"issue","id":"chezmoi-4sj","title":"lazydocker: static config from live","description":"~/.config/lazydocker (not in dotstate).","status":"closed","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:06Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:53:15Z","closed_at":"2026-08-09T18:53:15Z","close_reason":"Closed","dependencies":[{"issue_id":"chezmoi-4sj","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:51Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-4sj","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:51Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} +{"_type":"issue","id":"chezmoi-a2k","title":"claude: settings, commands, agents, hooks, skills only","description":"~/.claude: settings.json, commands/, hooks/, skills/, CLAUDE.md. Never credentials/history/projects/sessions.","status":"in_progress","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:06Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:53:15Z","started_at":"2026-08-09T18:53:15Z","dependencies":[{"issue_id":"chezmoi-a2k","depends_on_id":"chezmoi-1a0","type":"blocks","created_at":"2026-08-09T14:42:24Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-a2k","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:52Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-a2k","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:52Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":3,"dependent_count":2,"comment_count":0} +{"_type":"issue","id":"chezmoi-exq","title":"git: dot_gitconfig.tmpl with templated email/signing key","description":"~/.gitconfig from live; email + signing key from chezmoi data.","status":"in_progress","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:06Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:53:16Z","started_at":"2026-08-09T18:53:16Z","dependencies":[{"issue_id":"chezmoi-exq","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:52Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-exq","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:52Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"chezmoi-fde","title":"starship: prompt config, universal","description":"Keep starship (user decision — omp dropped). dot_config/starship.toml from live; starship in packages.yaml both OSes. Noctalia palette block is auto-generated on linux — noctalia rewrites it in place; acceptable drift, noted.","status":"closed","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:06Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:51:26Z","closed_at":"2026-08-09T18:51:26Z","close_reason":"starship.toml added from live; packages updated","dependencies":[{"issue_id":"chezmoi-fde","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:52Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-fde","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:51Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} -{"_type":"issue","id":"chezmoi-x7f","title":"lazygit: static config","description":"~/.config/lazygit. Already partially in repo — reconcile.","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:06Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:06Z","dependencies":[{"issue_id":"chezmoi-x7f","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:51Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-x7f","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} -{"_type":"issue","id":"chezmoi-hou","title":"yazi: config, opener rules OS-branched","description":"~/.config/yazi. open vs xdg-open template branch.","status":"open","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:05Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:42:05Z","dependencies":[{"issue_id":"chezmoi-hou","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-hou","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} +{"_type":"issue","id":"chezmoi-x7f","title":"lazygit: static config","description":"~/.config/lazygit. Already partially in repo — reconcile.","status":"closed","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:06Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:53:14Z","closed_at":"2026-08-09T18:53:14Z","close_reason":"Closed","dependencies":[{"issue_id":"chezmoi-x7f","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:51Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-x7f","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} +{"_type":"issue","id":"chezmoi-hou","title":"yazi: config, opener rules OS-branched","description":"~/.config/yazi. open vs xdg-open template branch.","status":"closed","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:05Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:53:14Z","closed_at":"2026-08-09T18:53:14Z","close_reason":"Closed","dependencies":[{"issue_id":"chezmoi-hou","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-hou","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"chezmoi-sd9","title":"nvim: AstroNvim config, static","description":"chezmoi add ~/.config/nvim as-is, no templating. Exclude lazy-lock churn decision noted.","status":"closed","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:05Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:52:20Z","started_at":"2026-08-09T18:51:54Z","closed_at":"2026-08-09T18:52:20Z","close_reason":"Closed","dependencies":[{"issue_id":"chezmoi-sd9","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:49Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-sd9","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:49Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} -{"_type":"issue","id":"chezmoi-utl","title":"kitty: live config, OS-branch fonts/paths if needed","description":"~/.config/kitty. Keybinds shared.","status":"in_progress","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:05Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:52:41Z","started_at":"2026-08-09T18:52:41Z","dependencies":[{"issue_id":"chezmoi-utl","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-utl","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} +{"_type":"issue","id":"chezmoi-utl","title":"kitty: live config, OS-branch fonts/paths if needed","description":"~/.config/kitty. Keybinds shared.","status":"closed","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:05Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:53:14Z","started_at":"2026-08-09T18:52:41Z","closed_at":"2026-08-09T18:53:14Z","close_reason":"Closed","dependencies":[{"issue_id":"chezmoi-utl","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-utl","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"chezmoi-uw2","title":"fish: config, conf.d, functions, completions, bindings","description":"Live ~/.config/fish (Rogz storage superset; Noctalia canonical, deltas to MIGRATION-NOTES). OS-branch clipboard/open/package paths. secrets.fish excluded (own issue). fish -n all files.","status":"closed","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:05Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:51:54Z","started_at":"2026-08-09T18:49:28Z","closed_at":"2026-08-09T18:51:54Z","close_reason":"Closed","dependencies":[{"issue_id":"chezmoi-uw2","depends_on_id":"chezmoi-1a0","type":"blocks","created_at":"2026-08-09T14:42:24Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-uw2","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:49Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-uw2","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:49Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":3,"dependent_count":2,"comment_count":0} {"_type":"issue","id":"chezmoi-xi5","title":"tmux: config from live, strip vertical geometry","description":"~/.config/tmux (tmux.conf symlink from Vertical-Rogz_AppleStudio). Verify live, gate vertical-display-specific bits if present. Plugins dir decision.","status":"closed","priority":2,"issue_type":"task","owner":"prad@sonr.io","created_at":"2026-08-09T18:42:05Z","created_by":"Prad Nukala","updated_at":"2026-08-09T18:52:41Z","started_at":"2026-08-09T18:52:20Z","closed_at":"2026-08-09T18:52:41Z","close_reason":"tmux.conf real content (was symlink_); no vertical geometry present; plugins unmanaged, tpm bootstrap in post script","dependencies":[{"issue_id":"chezmoi-xi5","depends_on_id":"chezmoi-byc","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"},{"issue_id":"chezmoi-xi5","depends_on_id":"chezmoi-rnv","type":"blocks","created_at":"2026-08-09T14:42:50Z","created_by":"Prad Nukala","metadata":"{}"}],"dependency_count":2,"dependent_count":2,"comment_count":0} diff --git a/dot_claude/commands/bd-drain.md b/dot_claude/commands/bd-drain.md new file mode 100644 index 0000000..0ce7fb0 --- /dev/null +++ b/dot_claude/commands/bd-drain.md @@ -0,0 +1,118 @@ +--- +description: Recursively implement all pending beads issues until every one is closed with tests passing, builds succeeding, requirements met, and blockers cleared +argument-hint: [optional: priority filter e.g. "p0-p2" | epic id | "dry-run"] +allowed-tools: Bash(bd:*), Bash(git:*), Bash(go:*), Bash(pnpm:*), Bash(cargo:*), Bash(make:*), Read, Write, Edit, Glob, Grep, Task +--- + +# /bd-drain — Recursive Beads Completion Workflow + +Drain the beads backlog to zero. Work every ready issue to full completion, unblock dependent issues as they clear, and repeat until no open, actionable work remains. Arguments: `$ARGUMENTS` (optional priority filter like `p0-p2`, an epic ID to scope to, or `dry-run` to plan without executing). + +## Phase 0 — Session Bootstrap + +1. Run `bd dolt pull` to sync beads state from remote. +2. Run `bd prime` if context was compacted or this is a fresh session. +3. Run `bd doctor` — if sync problems or missing hooks are reported, fix them before proceeding. +4. Run `bd stats` and record the baseline: open / in_progress / blocked counts. This is the burn-down target. +5. Run `bd memories drain` and `bd memories ` to load any prior insights about this workflow or codebase gotchas. +6. Detect the project's verification commands by inspecting the repo (Makefile, Taskfile, turbo.json, package.json scripts, go.mod, Cargo.toml). Record: + - **TEST_CMD** (e.g. `go test ./...`, `pnpm turbo test`, `cargo test`) + - **BUILD_CMD** (e.g. `go build ./...`, `pnpm turbo build`) + - **LINT_CMD** if present (e.g. `golangci-lint run`, `pnpm lint`) +7. Run TEST_CMD and BUILD_CMD once **before touching anything** to establish a green baseline. If the baseline is already red, create a P0 bug with `bd create` describing the pre-existing failure and fix it first — never build on a broken base. + +If `$ARGUMENTS` contains `dry-run`: execute Phase 1's triage, print the planned execution order as a dependency-sorted list, and STOP. + +## Phase 1 — Triage & Ordering + +1. Run `bd ready` for actionable issues (respect `$ARGUMENTS` priority/epic filter if given). +2. Run `bd blocked` and `bd show ` on each blocked issue to map the dependency graph. +3. Run `bd orphans` — repair or flag any broken dependencies (`bd dep add` / `bd human `). +4. Build a topologically-sorted work queue: priority order (P0 → P4) within dependency order. Issues whose completion unblocks the most downstream work get tie-breaker preference. +5. Run `bd lint` on the queue. For issues with missing/vague requirements, attempt to infer acceptance criteria from the description and codebase, update via `bd update --acceptance="..."`. If requirements are genuinely undecidable, run `bd human ` with a specific question and skip it (do not guess on ambiguous product decisions). + +## Phase 2 — The Drain Loop + +Repeat until the exit condition in Phase 3 is met. For **each** issue in the queue: + +### 2a. Claim +```bash +bd show # re-read full details, dependencies, acceptance criteria +bd update --claim # mark in_progress +``` + +### 2b. Implement +- Read the acceptance criteria, design notes, and any linked issues before writing code. +- Locate the relevant code with Glob/Grep; understand existing patterns before adding new ones. +- Implement the minimal complete change that satisfies the requirements. Follow existing repo conventions. +- If the issue is a `feature` without tests specified, write tests anyway — untested features do not count as done. +- If during implementation you discover necessary sub-work, create it immediately: `bd create --title="..." --description="..." --type=task --priority=` then `bd dep add ` as appropriate. Never leave discovered work untracked. + +### 2c. Verify (hard gates — ALL must pass) +```bash + # full test suite, not just new tests + # full build + # if present +``` +- ✅ All tests pass (including pre-existing ones — no regressions) +- ✅ Build succeeds cleanly +- ✅ Every acceptance criterion on the issue is demonstrably met +- ✅ No new warnings/lint errors introduced + +On failure: fix and re-verify. After **3 failed fix attempts** on the same root cause, stop thrashing — record findings with `bd update --notes=""`, run `bd human ` if it needs a decision, revert the working tree to the last green state, and move to the next issue. + +### 2d. Close & Checkpoint +```bash +bd close --reason="" --suggest-next +bd remember "" +git add +git commit -m "(): (closes )" +``` +- Commit per issue, not in batches — each commit should be independently green. +- `--suggest-next` output feeds Phase 2e. + +### 2e. Re-plan +- Newly unblocked issues from `--suggest-next` are inserted into the queue in priority order. +- Every **5 closed issues**, re-run `bd ready` and `bd blocked` to catch drift (issues added by hooks, remote changes), and re-run the full test suite even if the last issue didn't touch shared code. + +### Parallelism +When the queue contains **independent** issues (no shared files, no dependency relation), dispatch up to 3 in parallel via the Task tool (subagents), each following 2a–2d in isolation. Serialize anything touching shared modules, migrations, or config. Merge subagent commits sequentially and re-run TEST_CMD after each merge. + +## Phase 3 — Exit Conditions & Escalation + +The loop terminates when **one** of these holds: + +1. **Success**: `bd ready` is empty AND `bd blocked` is empty (within the `$ARGUMENTS` scope) AND the final full TEST_CMD + BUILD_CMD run is green. +2. **Human-gated**: remaining issues are all flagged via `bd human` — report them with the specific decision needed for each. +3. **Externally blocked**: remaining blockers depend on things outside this repo (third-party, credentials, other teams) — document each with `bd update --notes` and report. + +Never terminate by silently skipping issues. Every open issue at exit must be either human-flagged or externally blocked with notes explaining why. + +## Phase 4 — Session Close Protocol (MANDATORY) + +```bash +[ ] git status # confirm nothing unstaged/untracked left behind +[ ] git add # stage any stragglers +[ ] bd dolt pull # pull beads updates from main +[ ] git commit -m "..." # final commit if anything staged +[ ] bd stats # final counts +``` + +Then produce the **Drain Report**: + +- **Burn-down**: baseline vs final counts (open / in_progress / blocked / closed this session) +- **Closed**: each issue ID + one-line summary + commit SHA +- **Escalated**: each `bd human` flag with the exact decision needed +- **Externally blocked**: each with the external dependency named +- **Discovered work**: new issues created during the drain +- **Insights recorded**: `bd remember` entries added +- **Final verification**: test suite result, build result, lint result + +## Hard Rules + +- Use beads for ALL tracking. Never TodoWrite, TaskCreate, or markdown task files. +- Never `bd edit` (blocks on $EDITOR). +- Never close an issue whose acceptance criteria aren't verifiably met — a passing build is necessary, not sufficient. +- Never commit with a red test suite. +- Priority values are numeric (0–4 / P0–P4), never "high"/"medium"/"low". +- Persistence you don't need beats lost context: over-record notes, insights, and reasons. diff --git a/dot_claude/commands/cmem-to-beads.md b/dot_claude/commands/cmem-to-beads.md new file mode 100644 index 0000000..03e8696 --- /dev/null +++ b/dot_claude/commands/cmem-to-beads.md @@ -0,0 +1,140 @@ +--- +description: Extract insight-type learnings from claude-mem and record them into beads memories +--- + +# Sync claude-mem insights → beads memories + + +- [Sync claude-mem insights → beads memories](#sync-claude-mem-insights-beads-memories) + - [Scope (read carefully)](#scope-read-carefully) + - [Phase 0 — Preflight](#phase-0-preflight) + - [Phase 1 — Enumerate ALL learnings (the loop)](#phase-1-enumerate-all-learnings-the-loop) + - [Phase 2 — Triage & record (per-item loop)](#phase-2-triage-record-per-item-loop) + - [Phase 3 — Finalize](#phase-3-finalize) + - [Guardrails](#guardrails) + + +You are migrating **durable insights** from **claude-mem** (the session memory store) +into **beads** (`bd remember`) for this repository. Work autonomously through a loop +until every relevant observation has been triaged. Do not invent learnings — only +persist what claude-mem actually returns. + +## Scope (read carefully) + +- **Record ONLY insights / decisions / gotchas** → `bd remember`. +- **Ignore actionable learnings** (bugs to fix, tech debt, follow-ups, TODOs). + Do **not** create them as beads issues. A separate command will later pull those + from claude-mem and feed them into **Linear** for PM; beads then syncs from Linear. +- This command therefore **never calls `bd create`** and never writes beads issues. + The only write to beads is `bd remember`. Leave actionable items untouched in + claude-mem so the future Linear command can pick them up. + +--- + +## Phase 0 — Preflight + +1. Confirm beads is live in this repo: `bd ready` (and `bd doctor` if it errors). +2. Snapshot existing memories for dedup: `bd memories ""` (plus a few broad keyword + `bd memories ` lookups) and keep the gist in mind. +3. Set up a **local progress file** for resumability (so compaction/re-runs skip done + work) — NOT a beads issue: + ``` + ./.claude-mem-sync/processed.json # { "processed": [], "skipped_actionable": } + ``` + Create it if missing; load it if present. Add `.claude-mem-sync/` to `.gitignore` + if it isn't already. + +--- + +## Phase 1 — Enumerate ALL learnings (the loop) + +claude-mem search is query-based, so a single call won't surface everything. Build a +**complete, de-duplicated set of observation IDs** by sweeping across angles, then +walking chronologically. Track seen IDs in a set; never process the same ID twice. + +Use `/claude-mem:mem-search` for every query below, following claude-mem's 3-layer +pattern — pull the compact **index** first, only fetch full details for IDs you keep. + +**1a. Type sweep** — one broad query per observation type, high limit: +``` +/claude-mem:mem-search (type=insight) +/claude-mem:mem-search (type=decision) +/claude-mem:mem-search (type=bugfix) # scan for the *lesson learned*, not the fix-task +/claude-mem:mem-search (type=architecture) +/claude-mem:mem-search (type=feature) # plus any other types this project uses +``` +> You still scan every type — a bugfix or feature observation often contains a durable +> *insight* ("X breaks when Y") even though its actionable part is ignored here. + +**1b. Topic sweep** — queries for the repo's recurring themes (infer from the codebase: +auth, deploy, config, performance, gotchas, "why we", "decided", "learned", "don't"). +Each adds new IDs to the set. + +**1c. Chronological walk** — to catch what the sweeps missed, seed `timeline` from your +earliest and latest known observations and step through history, collecting any IDs not +already in the set. Stop when the timeline yields no new IDs in either direction. + +Result: a deduplicated list of candidate observation IDs. Print the count. + +--- + +## Phase 2 — Triage & record (per-item loop) + +Process candidate IDs in batches. For each batch: + +1. **Fetch details** once: `get_observations(ids=[...])` (batch IDs — never one-at-a-time). +2. For **each** observation, classify: + + - **Actionable** (a thing to *do*: unfixed bug, tech debt, follow-up, TODO) → + **IGNORE**. Increment `skipped_actionable` in the progress file and move on. + It stays in claude-mem for the Linear command. + + - **Insight / decision / gotcha** (durable knowledge about *how things are*) → + record it: + - **Dedup check** first: `bd memories `. If beads already captures it, skip. + - Then: + ``` + bd remember " [cmem #]" + ``` + Keep it atomic and reusable. Include the source `cmem #` so it traces back + to http://localhost:37777/api/observation/. + + - **Noise** (one-off output, ephemeral state, trivially obvious, duplicate) → skip silently. + +3. Append processed IDs to `./.claude-mem-sync/processed.json`. + +Repeat until the candidate set is exhausted. + +--- + +## Phase 3 — Finalize + +1. Sanity pass: `bd memories ""` — confirm new insights landed and read cleanly. +2. Sync beads memories to remote: `bd dolt push`. +3. **Session close protocol** — if any code/files changed (e.g. `.gitignore`): + ``` + git status + git add + git commit -m "chore: record claude-mem insights into beads" + git push + ``` + +--- + +## Guardrails + +- **Insights only.** Never `bd create`, never write a beads issue. Actionable items are + ignored and left in claude-mem for the Linear sync command. +- **Idempotent.** Re-running must not duplicate — always dedup against `bd memories` and + the local progress file before writing. +- **Atomic memories.** One insight per `bd remember`, self-contained, no "in this session" + phrasing. +- **Cite the source.** Every entry carries its `cmem #` for traceability. +- **No `bd edit`** — it opens an editor and blocks. +- **Don't fabricate** — if a sweep returns nothing, say so and move on. +- For large sets, run the type/topic sweeps and `bd memories` dedup lookups with + **parallel subagents** for speed. + +When done, report: total observations scanned, how many insights were recorded, how many +were skipped as **actionable** (this is the backlog the Linear command will handle), and +how many were skipped as noise/duplicates. diff --git a/dot_claude/commands/cmem-to-linear.md b/dot_claude/commands/cmem-to-linear.md new file mode 100644 index 0000000..84d96c9 --- /dev/null +++ b/dot_claude/commands/cmem-to-linear.md @@ -0,0 +1,179 @@ +--- +description: Extract actionable learnings from claude-mem into beads tasks and push them up to Linear for PM +--- + +# Sync claude-mem actionable learnings → beads → Linear + + +- [Sync claude-mem actionable learnings → beads → Linear](#sync-claude-mem-actionable-learnings-beads-linear) + - [Scope (read carefully)](#scope-read-carefully) + - [Sync model (no linear-cli needed)](#sync-model-no-linear-cli-needed) + - [Phase 0 — Preflight](#phase-0-preflight) + - [Phase 1 — Enumerate ALL learnings (the loop)](#phase-1-enumerate-all-learnings-the-loop) + - [Phase 2 — Triage & create (per-item loop)](#phase-2-triage-create-per-item-loop) + - [Phase 3 — Push to Linear](#phase-3-push-to-linear) + - [Phase 4 — Finalize](#phase-4-finalize) + - [Guardrails](#guardrails) + + +You are turning **actionable learnings** from **claude-mem** (the session memory store) +into **beads** (`bd`) tasks, then pushing the new ones up to **Linear** for PM. Work +autonomously through a loop until every relevant observation has been triaged. Do not +invent learnings — only persist what claude-mem actually returns. + +## Scope (read carefully) + +- **Record ONLY actionable learnings** — things to *do*: unfixed bugs, tech debt, + follow-ups, TODOs, missing tests, planned refactors. Each becomes a `bd create` task. +- **Ignore insights / decisions / gotchas** (durable knowledge about *how things are*). + A separate command records those as `bd remember` memories — do **not** touch them here. + Leave them in claude-mem untouched. +- A single observation may legitimately contain both an insight *and* an action item; the + two commands are independent, so it's fine if this one creates a task while the other + records a memory from the same `cmem #`. + +## Sync model (no linear-cli needed) + +Beads-first, push up, bidirectional thereafter: +1. Create tasks in beads (`bd create`). +2. Push the new ones to Linear with `bd linear push ` — this creates the Linear + issues and writes `external_ref` back onto each bead (`--update-refs` is default true). +3. From then on, `bd linear sync` is bidirectional: PM edits in Linear pull back into beads. + +`linear-cli` is **not** used. All Linear interaction goes through native `bd linear`. + +--- + +## Phase 0 — Preflight + +1. Confirm beads is live: `bd ready` (and `bd doctor` if it errors). +2. Confirm Linear is wired up: `bd linear status`. If it errors / unconfigured, stop and + tell the user to set `linear.api_key` + team (`bd linear teams` to find the team UUID). + Note whether **multiple teams** are configured (`linear.team_ids`) — if so, push needs + an explicit `--team `; ask the user which team these tasks belong to. +3. Dedup snapshot: `bd list --status=open` and a few `bd search ` lookups so you can + recognize existing tasks (including ones already pulled from Linear). +4. Local progress file for resumability — NOT a beads issue: + ``` + ./.claude-mem-sync/processed-actions.json # { "processed": [], "created": [], "skipped_insights": } + ``` + Create if missing, load if present. Ensure `.claude-mem-sync/` is in `.gitignore`. + +--- + +## Phase 1 — Enumerate ALL learnings (the loop) + +claude-mem search is query-based, so one call won't surface everything. Build a +**complete, de-duplicated set of observation IDs** by sweeping across angles, then walking +chronologically. Track seen IDs in a set; never process the same ID twice. + +Use `/claude-mem:mem-search` for every query below, following claude-mem's 3-layer pattern +— pull the compact **index** first, only fetch full details for IDs you keep. + +**1a. Type sweep** — one broad query per observation type, high limit: +``` +/claude-mem:mem-search (type=bugfix) +/claude-mem:mem-search (type=feature) +/claude-mem:mem-search (type=insight) # scan for the *action item* buried inside, not the insight +/claude-mem:mem-search (type=decision) +/claude-mem:mem-search (type=architecture) # plus any other types this project uses +``` +> Scan every type — even an `insight` observation often ends with "…so we should do X", +> which is the action item you extract here while ignoring the insight itself. + +**1b. Topic sweep** — queries for action-shaped language the codebase tends to record: +"TODO", "should", "need to", "fix", "broken", "flaky", "refactor", "tech debt", "later", +"workaround", "temporary", "follow up". Each adds new IDs to the set. + +**1c. Chronological walk** — seed `timeline` from your earliest and latest known +observations and step through history, collecting any IDs not already in the set. Stop when +the timeline yields no new IDs in either direction. + +Result: a deduplicated list of candidate observation IDs. Print the count. + +--- + +## Phase 2 — Triage & create (per-item loop) + +Process candidate IDs in batches. For each batch: + +1. **Fetch details** once: `get_observations(ids=[...])` (batch IDs — never one-at-a-time). +2. For **each** observation, classify: + + - **Insight / decision / gotcha** (knowledge, nothing to *do*) → **IGNORE**. Increment + `skipped_insights` and move on. It's the other command's job. + + - **Noise** (one-off output, ephemeral state, trivially obvious, duplicate) → skip silently. + + - **Actionable** → create a task: + - **Dedup first:** `bd search ""` and `bd search "cmem #"`. If a matching + task already exists (locally or pulled from Linear), skip — this keeps re-runs idempotent. + - Then: + ``` + bd create --title="" \ + --description=">" \ + --type=bug|task|feature \ + --priority=<0-4> + ``` + - Priority is `0-4` / `P0-P4` (0=critical … 4=backlog) — never high/medium/low. + bd maps this to Linear priority on push. + - Optionally add `--acceptance=""` when the observation implies one. + - If two items depend on each other: `bd dep add `. + - Record the new bead id and the `cmem #` in the progress file. + +Repeat until the candidate set is exhausted. + +--- + +## Phase 3 — Push to Linear + +1. Review what's queued: `bd linear status` (shows issues pending push, i.e. no external_ref). +2. Push **only the tasks you just created**, by id, so you don't drag along unrelated pending work: + ``` + bd linear push ... + ``` + - Add `--team ` if multiple teams are configured (from Phase 0). + - Run `--dry-run` first if the user wants a preview. + - This creates the Linear issues and sets `external_ref` on each bead (default `--update-refs`). + - Alternative for bulk: `bd linear sync --push --create-only` (+ `--team`), but prefer the + explicit id list for precision. +3. Confirm linkage: re-run `bd linear status` and spot-check a couple of beads now carry an + `external_ref` to Linear. + +> Steady state: after this seeding push, a scheduled or manual `bd linear sync` keeps both +> sides aligned — PM's changes in Linear pull back down to beads. You don't push again for +> these; you only push *newly created* tasks on future runs. + +--- + +## Phase 4 — Finalize + +1. Sync beads to its Dolt remote: `bd dolt push`. +2. **Session close protocol** — if any code/files changed (e.g. `.gitignore`): + ``` + git status + git add + git commit -m "chore: extract claude-mem action items into beads + Linear" + git push + ``` + +--- + +## Guardrails + +- **Actionable only.** Never `bd remember` here. Insights are ignored and left in claude-mem + for the insights command. +- **No linear-cli.** All Linear interaction is native `bd linear`. +- **Idempotent.** Re-running must not duplicate — dedup against `bd search` (including + `bd search "cmem #"`) and the progress file before creating, and push only new ids. +- **Cite the source.** Every task description ends with `Source: cmem #` + (traceable at http://localhost:37777/api/observation/). +- **No `bd edit`** — it opens an editor and blocks. Use inline `--` flags on create/update. +- **Multiple teams → explicit `--team`** on push; ask the user if ambiguous. +- **Don't fabricate** — if a sweep returns nothing, say so and move on. +- For large sets, run the type/topic sweeps and `bd search` dedup lookups with **parallel + subagents** for speed (but run `bd create` / `bd linear push` serially to keep ids ordered). + +When done, report: total observations scanned, how many tasks were created (with bead ids), +how many pushed to Linear (with external_refs), how many skipped as **insights** (the other +command's backlog), and how many skipped as noise/duplicates. diff --git a/dot_claude/commands/create-task.md b/dot_claude/commands/create-task.md new file mode 100644 index 0000000..39427b3 --- /dev/null +++ b/dot_claude/commands/create-task.md @@ -0,0 +1,102 @@ +--- +description: Plan a task by decomposing it into beads issues with dependencies, acceptance criteria, and priorities +argument-hint: +allowed-tools: Bash(bd:*), Bash(git log:*), Bash(git status:*), Bash(rg:*), Task +--- + +# /create-task — Plan work into beads + + +- [/create-task — Plan work into beads](#create-task-plan-work-into-beads) + - [Current workspace state](#current-workspace-state) + - [Task to plan](#task-to-plan) + - [Instructions](#instructions) + - [1. Understand before creating](#1-understand-before-creating) + - [2. Decompose](#2-decompose) + - [3. Create issues](#3-create-issues) + - [4. Wire dependencies](#4-wire-dependencies) + - [5. Report the plan](#5-report-the-plan) + + +## Current workspace state + +- Ready work: !`bd ready 2>/dev/null | head -30` +- In progress: !`bd list --status=in_progress 2>/dev/null | head -15` +- Recently closed (dedup check): !`bd list --status=closed 2>/dev/null | head -10` +- Stats: !`bd stats 2>/dev/null` +- Relevant memories: !`bd memories "$ARGUMENTS" 2>/dev/null | head -40` + +## Task to plan + +$ARGUMENTS + +## Instructions + +You are planning this task using **beads as the sole tracker**. Do NOT use TodoWrite, TaskCreate, or markdown checklists. Do NOT write any code in this command — output is a set of beads issues forming an executable plan. + +### 1. Understand before creating + +- Search for prior art first: `bd search ""` — the task (or part of it) may already exist. Per repo convention, `contracts-*`/`backend-*`/`core-*` beads mirror Linear CORE-* and share ID suffixes across sibling repos; if something looks missing, check sibling repo beads and `git log` before assuming it needs a new issue. +- Check the injected memories above for constraints, gotchas, and prior decisions that shape the plan (e.g., root-file serialization, generated-file rules, runtime conventions). +- If the request is ambiguous on scope, ask ONE clarifying question, then proceed. + +### 2. Decompose + +Break the task into issues sized for a single focused session (roughly ≤ half a day each). For each issue decide: + +- **type**: `feature` (new capability), `task` (chore/refactor/infra), `bug` (defect) +- **priority**: numeric only — `0` critical / `1` high / `2` medium / `3` low / `4` backlog. Never "high"/"medium"/"low". +- **description**: WHY the issue exists + WHAT done looks like. Never a bare title restatement. +- **acceptance criteria**: concrete, verifiable (tests pass, command output, deployed address updated, etc.) +- **design** (when a decision was made): record it so future sessions don't re-litigate. + +If the plan touches shared root files (`turbo.json`, `pnpm-workspace.yaml`, `pnpm-lock.yaml`, root Biome/tsconfig), note it in the issue and **serialize those issues with dependencies** — they cannot run in parallel. + +### 3. Create issues + +Use the full quality flags: + +```bash +bd create \ + --title="" \ + --description="" \ + --type= \ + --priority=<0-4> \ + --acceptance="" \ + --design="" \ + --notes="" \ + --validate +``` + +- **3+ issues → spawn parallel subagents**, one `bd create` batch each, then collect the returned IDs. +- Quote every string flag (descriptions contain `&`, `$`, backticks). +- NEVER use `bd edit` (opens $EDITOR and blocks). Amend with `bd update --description/--notes/--design`. + +### 4. Wire dependencies + +```bash +bd dep add # dependent depends on blocker +``` + +- Model the real execution order: tests depend on implementation, redeploys depend on ABI changes, root-file edits form a chain. +- Verify with `bd blocked` and `bd show ` that the graph matches intent — no cycles, no orphans (`bd orphans`). + +### 5. Report the plan + +Output a concise summary: + +1. **Created issues** — table of `id | title | type | priority` +2. **Dependency graph** — short text sketch of the ordering (e.g. `x8y → oto → 53x`) +3. **Entry point** — which issue(s) show in `bd ready` right now, i.e., where work starts +4. **Deferred/skipped** — anything that already existed (with the existing ID) or was intentionally left out + +Then persist and finish: + +```bash +bd ready # confirm entry points are unblocked +git status # beads auto-commits to Dolt; push if session ends here +``` + +If planning surfaced a durable insight (a constraint, a decision, a gotcha), store it: `bd remember ""` — never a MEMORY.md file. + +Do NOT start implementing any issue. Planning ends when the graph is created, validated, and reported. Implementation begins in a later session via `bd ready` → `bd update --claim`. diff --git a/dot_claude/commands/rams.md b/dot_claude/commands/rams.md new file mode 100644 index 0000000..9dd06f5 --- /dev/null +++ b/dot_claude/commands/rams.md @@ -0,0 +1,104 @@ +--- +description: Run accessibility and visual design review +--- + +# Rams Design Review + +You are Rams, an expert design engineer reviewing code for accessibility and visual design issues. + +## Mode + +If `$ARGUMENTS` is provided, analyze that specific file. +If `$ARGUMENTS` is empty, ask the user which file(s) to review, or offer to scan the project for component files. + +--- + +## 1. Accessibility Review (WCAG 2.1) + +### Critical (Must Fix) + +| Check | WCAG | What to look for | +|-------|------|------------------| +| Images without alt | 1.1.1 | `` without `alt` attribute | +| Icon-only buttons | 4.1.2 | `