cfsa-antigravity 3.0.2 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -10
- package/bin/cli.mjs +7 -6
- package/package.json +1 -1
- package/template/.agent/PRDS/codex-runtime-support.md +2 -2
- package/template/.agent/TASKS/codex-runtime-support.md +2 -2
- package/template/.agent/instructions/workflow.md +3 -3
- package/template/.agent/kit-sync.md +3 -3
- package/template/.agent/rules/completion-checklist.md +3 -3
- package/template/.agent/skills/parallel-agents/SKILL.md +1 -1
- package/template/.agent/skills/session-continuity/SKILL.md +6 -6
- package/template/.agent/skills/session-continuity/protocols/01-session-resumption.md +1 -1
- package/template/.agent/skills/session-continuity/protocols/02-progress-generation.md +3 -3
- package/template/.agent/skills/session-continuity/protocols/03-progress-update.md +4 -4
- package/template/.agent/skills/session-continuity/protocols/07-spec-pipeline-generation.md +1 -1
- package/template/.agent/skills/session-continuity/protocols/08-spec-pipeline-update.md +2 -2
- package/template/.agent/skills/session-continuity/protocols/11-parallel-synthesis.md +1 -1
- package/template/.agent/workflows/create-prd-architecture.md +2 -2
- package/template/.agent/workflows/create-prd-design-system.md +2 -2
- package/template/.agent/workflows/create-prd-security.md +2 -2
- package/template/.agent/workflows/create-prd-stack.md +2 -2
- package/template/.agent/workflows/create-prd.md +2 -2
- package/template/.agent/workflows/decompose-architecture-validate.md +1 -1
- package/template/.agent/workflows/decompose-architecture.md +2 -2
- package/template/.agent/workflows/ideate.md +2 -2
- package/template/.agent/workflows/implement-slice-setup.md +1 -1
- package/template/.agent/workflows/implement-slice-tdd.md +3 -3
- package/template/.agent/workflows/implement-slice.md +2 -2
- package/template/.agent/workflows/plan-phase-preflight.md +2 -2
- package/template/.agent/workflows/plan-phase-write.md +2 -2
- package/template/.agent/workflows/plan-phase.md +2 -2
- package/template/.agent/workflows/setup-workspace.md +2 -2
- package/template/.agent/workflows/update-architecture-map.md +1 -1
- package/template/.agent/workflows/validate-phase-quality.md +1 -1
- package/template/.agent/workflows/validate-phase-readiness.md +2 -2
- package/template/.agent/workflows/validate-phase.md +2 -2
- package/template/.agent/workflows/verify-infrastructure.md +1 -1
- package/template/.agent/workflows/write-architecture-spec-deepen.md +3 -3
- package/template/.agent/workflows/write-architecture-spec-design.md +1 -1
- package/template/.agent/workflows/write-architecture-spec.md +3 -3
- package/template/.agent/workflows/write-be-spec-classify.md +1 -1
- package/template/.agent/workflows/write-be-spec-write.md +3 -3
- package/template/.agent/workflows/write-be-spec.md +3 -3
- package/template/.agent/workflows/write-fe-spec-classify.md +1 -1
- package/template/.agent/workflows/write-fe-spec-write.md +2 -2
- package/template/.agent/workflows/write-fe-spec.md +3 -3
- package/template/.claude/README.md +3 -1
- package/template/.claude/instructions/workflow.md +3 -3
- package/template/.claude/kit-sync.md +3 -3
- package/template/.claude/rules/completion-checklist.md +3 -3
- package/template/.claude/skills/parallel-agents/SKILL.md +1 -1
- package/template/.claude/skills/plan-phase/SKILL.md +2 -2
- package/template/.claude/skills/plan-phase-preflight/SKILL.md +2 -2
- package/template/.claude/skills/session-continuity/SKILL.md +6 -6
- package/template/.claude/skills/session-continuity/protocols/01-session-resumption.md +1 -1
- package/template/.claude/skills/session-continuity/protocols/02-progress-generation.md +3 -3
- package/template/.claude/skills/session-continuity/protocols/03-progress-update.md +4 -4
- package/template/.claude/skills/session-continuity/protocols/07-spec-pipeline-generation.md +1 -1
- package/template/.claude/skills/session-continuity/protocols/08-spec-pipeline-update.md +2 -2
- package/template/.claude/skills/session-continuity/protocols/11-parallel-synthesis.md +1 -1
- package/template/.claude/skills/setup/setup-cfsa.md +1 -1
- package/template/.claude/skills/write-architecture-spec/SKILL.md +2 -2
- package/template/.claude/skills/write-architecture-spec-deepen/SKILL.md +1 -1
- package/template/.claude/skills/write-architecture-spec-design/SKILL.md +1 -1
- package/template/.claude/skills/write-be-spec/SKILL.md +3 -3
- package/template/.claude/skills/write-be-spec-classify/SKILL.md +1 -1
- package/template/.claude/skills/write-be-spec-write/SKILL.md +1 -1
- package/template/.claude/skills/write-fe-spec/SKILL.md +3 -3
- package/template/.claude/skills/write-fe-spec-write/SKILL.md +1 -1
- package/template/.codex/README.md +99 -0
- package/template/.codex/instructions/commands.md +24 -0
- package/template/.codex/instructions/example.md +21 -0
- package/template/.codex/instructions/patterns.md +61 -0
- package/template/.codex/instructions/structure.md +29 -0
- package/template/.codex/instructions/tech-stack.md +93 -0
- package/template/.codex/instructions/workflow.md +64 -0
- package/template/.codex/kit-sync.md +6 -0
- package/template/.codex/rules/boundary-not-placeholder.md +146 -0
- package/template/.codex/rules/completion-checklist.md +60 -0
- package/template/.codex/rules/debug-by-test.md +49 -0
- package/template/.codex/rules/decision-classification.md +113 -0
- package/template/.codex/rules/extensibility.md +52 -0
- package/template/.codex/rules/memory-capture.md +84 -0
- package/template/.codex/rules/question-vs-command.md +91 -0
- package/template/.codex/rules/security-first.md +54 -0
- package/template/.codex/rules/single-question.md +59 -0
- package/template/.codex/rules/skill-mcp-first.md +45 -0
- package/template/.codex/rules/source-before-ask.md +93 -0
- package/template/.codex/rules/specificity-standards.md +64 -0
- package/template/.codex/rules/tdd-contract-first.md +67 -0
- package/template/.codex/rules/vertical-slices.md +83 -0
- package/template/.codex/skill-library/MANIFEST.md +498 -0
- package/template/.codex/skill-library/README.md +38 -0
- package/template/.codex/skill-library/meta/claude-code/README.md +9 -0
- package/template/.codex/skill-library/meta/claude-code/agent-development/SKILL.md +415 -0
- package/template/.codex/skill-library/meta/claude-code/hook-development/SKILL.md +712 -0
- package/template/.codex/skill-library/meta/claude-code/plugin-structure/SKILL.md +476 -0
- package/template/.codex/skill-library/meta/mcp-builder/SKILL.md +236 -0
- package/template/.codex/skill-library/meta/product-marketing-context/SKILL.md +241 -0
- package/template/.codex/skill-library/meta/tmux-processes/SKILL.md +210 -0
- package/template/.codex/skill-library/meta/using-tmux-for-interactive-commands/SKILL.md +178 -0
- package/template/.codex/skill-library/stack/3d/threejs-pro/SKILL.md +300 -0
- package/template/.codex/skill-library/stack/ai/ai-sdk/SKILL.md +77 -0
- package/template/.codex/skill-library/stack/ai/langchain/SKILL.md +530 -0
- package/template/.codex/skill-library/stack/ai/ollama/SKILL.md +321 -0
- package/template/.codex/skill-library/stack/ai/openai-sdk/SKILL.md +549 -0
- package/template/.codex/skill-library/stack/analytics/google-analytics/SKILL.md +153 -0
- package/template/.codex/skill-library/stack/api/graphql/SKILL.md +1061 -0
- package/template/.codex/skill-library/stack/api/trpc/SKILL.md +576 -0
- package/template/.codex/skill-library/stack/auth/authjs/SKILL.md +569 -0
- package/template/.codex/skill-library/stack/auth/clerk/SKILL.md +590 -0
- package/template/.codex/skill-library/stack/auth/firebase-auth/SKILL.md +734 -0
- package/template/.codex/skill-library/stack/auth/lucia/SKILL.md +230 -0
- package/template/.codex/skill-library/stack/auth/supabase-auth/SKILL.md +293 -0
- package/template/.codex/skill-library/stack/cms/payload-cms/SKILL.md +573 -0
- package/template/.codex/skill-library/stack/cms/shopify/SKILL.md +1193 -0
- package/template/.codex/skill-library/stack/cms/wordpress/SKILL.md +1104 -0
- package/template/.codex/skill-library/stack/css/sass-scss/SKILL.md +1121 -0
- package/template/.codex/skill-library/stack/css/tailwind-css-patterns/SKILL.md +863 -0
- package/template/.codex/skill-library/stack/css/tailwind-design-system/SKILL.md +490 -0
- package/template/.codex/skill-library/stack/css/vanilla-css/SKILL.md +1078 -0
- package/template/.codex/skill-library/stack/databases/clickhouse/SKILL.md +311 -0
- package/template/.codex/skill-library/stack/databases/influxdb/SKILL.md +280 -0
- package/template/.codex/skill-library/stack/databases/lancedb/SKILL.md +415 -0
- package/template/.codex/skill-library/stack/databases/mongodb/SKILL.md +1169 -0
- package/template/.codex/skill-library/stack/databases/neo4j/SKILL.md +839 -0
- package/template/.codex/skill-library/stack/databases/pgvector/SKILL.md +241 -0
- package/template/.codex/skill-library/stack/databases/pinecone/SKILL.md +212 -0
- package/template/.codex/skill-library/stack/databases/postgresql/SKILL.md +658 -0
- package/template/.codex/skill-library/stack/databases/qdrant/SKILL.md +312 -0
- package/template/.codex/skill-library/stack/databases/redis/SKILL.md +1079 -0
- package/template/.codex/skill-library/stack/databases/spacetimedb/SKILL.md +532 -0
- package/template/.codex/skill-library/stack/databases/sqlite/SKILL.md +1132 -0
- package/template/.codex/skill-library/stack/databases/supabase/SKILL.md +640 -0
- package/template/.codex/skill-library/stack/databases/surrealdb-expert/SKILL.md +945 -0
- package/template/.codex/skill-library/stack/databases/timescaledb/SKILL.md +745 -0
- package/template/.codex/skill-library/stack/databases/weaviate/SKILL.md +218 -0
- package/template/.codex/skill-library/stack/devops/git-advanced/SKILL.md +972 -0
- package/template/.codex/skill-library/stack/devops/git-workflow/SKILL.md +420 -0
- package/template/.codex/skill-library/stack/devops/github-actions/SKILL.md +554 -0
- package/template/.codex/skill-library/stack/devops/kubernetes/SKILL.md +950 -0
- package/template/.codex/skill-library/stack/devops/nginx/SKILL.md +841 -0
- package/template/.codex/skill-library/stack/devops/terraform/SKILL.md +860 -0
- package/template/.codex/skill-library/stack/email/resend/SKILL.md +391 -0
- package/template/.codex/skill-library/stack/extensions/chrome-extension/SKILL.md +375 -0
- package/template/.codex/skill-library/stack/extensions/plasmo/SKILL.md +195 -0
- package/template/.codex/skill-library/stack/extensions/vscode-extension/SKILL.md +453 -0
- package/template/.codex/skill-library/stack/extensions/wxt/SKILL.md +216 -0
- package/template/.codex/skill-library/stack/feature-flags/flagsmith/SKILL.md +187 -0
- package/template/.codex/skill-library/stack/feature-flags/launchdarkly/SKILL.md +183 -0
- package/template/.codex/skill-library/stack/feature-flags/posthog-flags/SKILL.md +189 -0
- package/template/.codex/skill-library/stack/frameworks/astro-framework/SKILL.md +162 -0
- package/template/.codex/skill-library/stack/frameworks/electron/SKILL.md +1286 -0
- package/template/.codex/skill-library/stack/frameworks/fastapi/SKILL.md +650 -0
- package/template/.codex/skill-library/stack/frameworks/hono/SKILL.md +90 -0
- package/template/.codex/skill-library/stack/frameworks/nestjs/SKILL.md +878 -0
- package/template/.codex/skill-library/stack/frameworks/nextjs/SKILL.md +635 -0
- package/template/.codex/skill-library/stack/frameworks/nuxt/SKILL.md +564 -0
- package/template/.codex/skill-library/stack/frameworks/svelte5/SKILL.md +81 -0
- package/template/.codex/skill-library/stack/frameworks/svelte5/references/events.md +353 -0
- package/template/.codex/skill-library/stack/frameworks/svelte5/references/migration.md +339 -0
- package/template/.codex/skill-library/stack/frameworks/svelte5/references/performance.md +443 -0
- package/template/.codex/skill-library/stack/frameworks/svelte5/references/runes.md +394 -0
- package/template/.codex/skill-library/stack/frameworks/svelte5/references/snippets.md +291 -0
- package/template/.codex/skill-library/stack/frameworks/svelte5/references/sveltekit.md +401 -0
- package/template/.codex/skill-library/stack/frameworks/svelte5/references/typescript.md +305 -0
- package/template/.codex/skill-library/stack/frameworks/sveltekit/SKILL.md +614 -0
- package/template/.codex/skill-library/stack/frameworks/tauri/SKILL.md +920 -0
- package/template/.codex/skill-library/stack/gamedev/godot/SKILL.md +1032 -0
- package/template/.codex/skill-library/stack/gamedev/unity/SKILL.md +1175 -0
- package/template/.codex/skill-library/stack/hosting/aws/SKILL.md +467 -0
- package/template/.codex/skill-library/stack/hosting/cloudflare/SKILL.md +201 -0
- package/template/.codex/skill-library/stack/hosting/docker-expert/SKILL.md +409 -0
- package/template/.codex/skill-library/stack/hosting/vercel/SKILL.md +484 -0
- package/template/.codex/skill-library/stack/languages/bash-scripting/SKILL.md +773 -0
- package/template/.codex/skill-library/stack/languages/c-cpp/SKILL.md +712 -0
- package/template/.codex/skill-library/stack/languages/gdscript/SKILL.md +789 -0
- package/template/.codex/skill-library/stack/languages/go/SKILL.md +664 -0
- package/template/.codex/skill-library/stack/languages/java/SKILL.md +778 -0
- package/template/.codex/skill-library/stack/languages/kotlin/SKILL.md +665 -0
- package/template/.codex/skill-library/stack/languages/python/SKILL.md +678 -0
- package/template/.codex/skill-library/stack/languages/rust/SKILL.md +673 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/SKILL.md +141 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/advanced-generics.md +90 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/branded-types.md +57 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/builder-pattern.md +71 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/common-pitfalls.md +135 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/conditional-types.md +27 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/decorators.md +98 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/discriminated-unions.md +62 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/mapped-types.md +53 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/performance-best-practices.md +104 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/template-literal-types.md +49 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/testing-types.md +112 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/type-guards.md +70 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/type-inference.md +101 -0
- package/template/.codex/skill-library/stack/languages/typescript-advanced-patterns/references/utility-types.md +98 -0
- package/template/.codex/skill-library/stack/languages/vanilla-javascript/SKILL.md +803 -0
- package/template/.codex/skill-library/stack/messaging/kafka/SKILL.md +235 -0
- package/template/.codex/skill-library/stack/messaging/nats/SKILL.md +147 -0
- package/template/.codex/skill-library/stack/messaging/rabbitmq/SKILL.md +178 -0
- package/template/.codex/skill-library/stack/messaging/sqs/SKILL.md +187 -0
- package/template/.codex/skill-library/stack/mobile/expo-react-native/SKILL.md +665 -0
- package/template/.codex/skill-library/stack/mobile/flutter/SKILL.md +316 -0
- package/template/.codex/skill-library/stack/mobile/kotlin-compose/SKILL.md +215 -0
- package/template/.codex/skill-library/stack/mobile/react-native/SKILL.md +337 -0
- package/template/.codex/skill-library/stack/mobile/swiftui/SKILL.md +261 -0
- package/template/.codex/skill-library/stack/monitoring/posthog/SKILL.md +396 -0
- package/template/.codex/skill-library/stack/monitoring/sentry/SKILL.md +509 -0
- package/template/.codex/skill-library/stack/notifications/fcm/SKILL.md +229 -0
- package/template/.codex/skill-library/stack/notifications/sendgrid/SKILL.md +220 -0
- package/template/.codex/skill-library/stack/notifications/twilio/SKILL.md +204 -0
- package/template/.codex/skill-library/stack/observability/datadog/SKILL.md +179 -0
- package/template/.codex/skill-library/stack/observability/distributed-tracing/SKILL.md +140 -0
- package/template/.codex/skill-library/stack/observability/opentelemetry/SKILL.md +164 -0
- package/template/.codex/skill-library/stack/observability/prometheus-grafana/SKILL.md +246 -0
- package/template/.codex/skill-library/stack/observability/python-observability/SKILL.md +158 -0
- package/template/.codex/skill-library/stack/orm/drizzle-orm/SKILL.md +613 -0
- package/template/.codex/skill-library/stack/orm/prisma/SKILL.md +744 -0
- package/template/.codex/skill-library/stack/payments/lemonsqueezy/SKILL.md +393 -0
- package/template/.codex/skill-library/stack/payments/stripe-integration/SKILL.md +457 -0
- package/template/.codex/skill-library/stack/queue/bullmq/SKILL.md +385 -0
- package/template/.codex/skill-library/stack/queue/inngest/SKILL.md +438 -0
- package/template/.codex/skill-library/stack/realtime/socketio/SKILL.md +595 -0
- package/template/.codex/skill-library/stack/search/algolia/SKILL.md +206 -0
- package/template/.codex/skill-library/stack/search/elasticsearch/SKILL.md +248 -0
- package/template/.codex/skill-library/stack/search/meilisearch/SKILL.md +385 -0
- package/template/.codex/skill-library/stack/search/typesense/SKILL.md +189 -0
- package/template/.codex/skill-library/stack/security/crypto-patterns/SKILL.md +437 -0
- package/template/.codex/skill-library/stack/security/csp-cors-headers/SKILL.md +588 -0
- package/template/.codex/skill-library/stack/security/dependency-auditing/SKILL.md +560 -0
- package/template/.codex/skill-library/stack/security/input-sanitization/SKILL.md +430 -0
- package/template/.codex/skill-library/stack/security/owasp-web-security/SKILL.md +421 -0
- package/template/.codex/skill-library/stack/state/tanstack-query/SKILL.md +637 -0
- package/template/.codex/skill-library/stack/state/zustand/SKILL.md +483 -0
- package/template/.codex/skill-library/stack/storage/aws-s3/SKILL.md +415 -0
- package/template/.codex/skill-library/stack/storage/cloudflare-r2/SKILL.md +252 -0
- package/template/.codex/skill-library/stack/storage/gcs/SKILL.md +229 -0
- package/template/.codex/skill-library/stack/testing/playwright/SKILL.md +641 -0
- package/template/.codex/skill-library/stack/testing/storybook/SKILL.md +923 -0
- package/template/.codex/skill-library/stack/testing/testing-library/SKILL.md +872 -0
- package/template/.codex/skill-library/stack/testing/vitest/SKILL.md +714 -0
- package/template/.codex/skill-library/stack/ui/react-best-practices/SKILL.md +877 -0
- package/template/.codex/skill-library/stack/ui/react-composition-patterns/SKILL.md +1107 -0
- package/template/.codex/skill-library/stack/ui/react-flow/SKILL.md +425 -0
- package/template/.codex/skill-library/stack/ui/shadcn-ui/SKILL.md +703 -0
- package/template/.codex/skill-library/stack/ui/svelte-flow/SKILL.md +390 -0
- package/template/.codex/skill-library/surface/api/api-caching/SKILL.md +458 -0
- package/template/.codex/skill-library/surface/api/api-documentation-openapi/SKILL.md +697 -0
- package/template/.codex/skill-library/surface/api/api-error-handling/SKILL.md +478 -0
- package/template/.codex/skill-library/surface/api/api-security-checklist/SKILL.md +147 -0
- package/template/.codex/skill-library/surface/api/email-best-practices/SKILL.md +59 -0
- package/template/.codex/skill-library/surface/api/rate-limiting-abuse-protection/SKILL.md +147 -0
- package/template/.codex/skill-library/surface/api/webhook-design/SKILL.md +752 -0
- package/template/.codex/skill-library/surface/cli/cli-configuration-management/SKILL.md +445 -0
- package/template/.codex/skill-library/surface/cli/cli-error-diagnostics/SKILL.md +515 -0
- package/template/.codex/skill-library/surface/cli/cli-shell-integration/SKILL.md +479 -0
- package/template/.codex/skill-library/surface/cli/cli-ux-design/SKILL.md +477 -0
- package/template/.codex/skill-library/surface/desktop/desktop-app-distribution/SKILL.md +416 -0
- package/template/.codex/skill-library/surface/desktop/desktop-security-sandboxing/SKILL.md +407 -0
- package/template/.codex/skill-library/surface/desktop/desktop-ux-conventions/SKILL.md +361 -0
- package/template/.codex/skill-library/surface/desktop/native-os-integration/SKILL.md +563 -0
- package/template/.codex/skill-library/surface/extension/browser-extension-patterns/SKILL.md +482 -0
- package/template/.codex/skill-library/surface/extension/plugin-architecture-design/SKILL.md +632 -0
- package/template/.codex/skill-library/surface/extension/vscode-extension-development/SKILL.md +728 -0
- package/template/.codex/skill-library/surface/mobile/app-store-submission/SKILL.md +304 -0
- package/template/.codex/skill-library/surface/mobile/mobile-offline-sync/SKILL.md +443 -0
- package/template/.codex/skill-library/surface/mobile/mobile-responsive-patterns/SKILL.md +432 -0
- package/template/.codex/skill-library/surface/mobile/push-notifications/SKILL.md +495 -0
- package/template/.codex/skill-library/surface/web/accessibility-compliance/SKILL.md +827 -0
- package/template/.codex/skill-library/surface/web/ai-seo/SKILL.md +398 -0
- package/template/.codex/skill-library/surface/web/ai-seo/references/content-patterns.md +285 -0
- package/template/.codex/skill-library/surface/web/ai-seo/references/platform-ranking-factors.md +152 -0
- package/template/.codex/skill-library/surface/web/analytics-tracking/SKILL.md +309 -0
- package/template/.codex/skill-library/surface/web/analytics-tracking/references/event-library.md +260 -0
- package/template/.codex/skill-library/surface/web/analytics-tracking/references/ga4-implementation.md +300 -0
- package/template/.codex/skill-library/surface/web/analytics-tracking/references/gtm-implementation.md +390 -0
- package/template/.codex/skill-library/surface/web/authentication-ui-flows/SKILL.md +530 -0
- package/template/.codex/skill-library/surface/web/dark-mode-theming/SKILL.md +516 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/SKILL.md +105 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/data/charts.csv +26 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/data/colors.csv +97 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/data/landing.csv +31 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/data/styles.csv +59 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/data/typography.csv +58 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/data/ux-guidelines.csv +100 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/scripts/core.py +258 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/scripts/design_system.py +1067 -0
- package/template/.codex/skill-library/surface/web/design-reference-data/scripts/search.py +106 -0
- package/template/.codex/skill-library/surface/web/form-handling-validation/SKILL.md +675 -0
- package/template/.codex/skill-library/surface/web/frontend-design/SKILL.md +1393 -0
- package/template/.codex/skill-library/surface/web/frontend-design/templates/cppn-hero.tsx +299 -0
- package/template/.codex/skill-library/surface/web/frontend-design/templates/wave-hero.tsx +875 -0
- package/template/.codex/skill-library/surface/web/frontend-verification/SKILL.md +111 -0
- package/template/.codex/skill-library/surface/web/frontend-verification/scripts/ux_audit.py +739 -0
- package/template/.codex/skill-library/surface/web/i18n-localization/SKILL.md +332 -0
- package/template/.codex/skill-library/surface/web/i18n-localization/references/icu-message-format.md +223 -0
- package/template/.codex/skill-library/surface/web/i18n-localization/references/intl-api-patterns.md +326 -0
- package/template/.codex/skill-library/surface/web/i18n-localization/references/rtl-support.md +298 -0
- package/template/.codex/skill-library/surface/web/offline-first-pwa/SKILL.md +657 -0
- package/template/.codex/skill-library/surface/web/page-cro/SKILL.md +182 -0
- package/template/.codex/skill-library/surface/web/page-cro/references/experiments.md +248 -0
- package/template/.codex/skill-library/surface/web/programmatic-seo/SKILL.md +238 -0
- package/template/.codex/skill-library/surface/web/programmatic-seo/references/playbooks.md +308 -0
- package/template/.codex/skill-library/surface/web/schema-markup/SKILL.md +179 -0
- package/template/.codex/skill-library/surface/web/schema-markup/references/schema-examples.md +398 -0
- package/template/.codex/skill-library/surface/web/seo-audit/SKILL.md +394 -0
- package/template/.codex/skill-library/surface/web/seo-audit/references/ai-writing-detection.md +200 -0
- package/template/.codex/skill-library/surface/web/web-performance-optimization/SKILL.md +646 -0
- package/template/.codex/skill-library/surface/web/web-scraping/SKILL.md +58 -0
- package/template/.codex/skills/README.md +78 -0
- package/template/.codex/skills/accessibility/SKILL.md +522 -0
- package/template/.codex/skills/accessibility/references/WCAG.md +162 -0
- package/template/.codex/skills/accessibility/references/ia-spec-checklist.md +35 -0
- package/template/.codex/skills/adversarial-review/SKILL.md +90 -0
- package/template/.codex/skills/antigravity-workflows/SKILL.md +81 -0
- package/template/.codex/skills/antigravity-workflows/resources/implementation-playbook.md +36 -0
- package/template/.codex/skills/api-design-principles/SKILL.md +169 -0
- package/template/.codex/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/template/.codex/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/template/.codex/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/template/.codex/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/template/.codex/skills/api-design-principles/resources/implementation-playbook.md +513 -0
- package/template/.codex/skills/api-versioning/SKILL.md +166 -0
- package/template/.codex/skills/api-versioning/references/typescript.md +157 -0
- package/template/.codex/skills/architecture-mapping/SKILL.md +219 -0
- package/template/.codex/skills/audit-ambiguity/SKILL.md +54 -0
- package/template/.codex/skills/audit-ambiguity-execute/SKILL.md +86 -0
- package/template/.codex/skills/audit-ambiguity-rubrics/SKILL.md +58 -0
- package/template/.codex/skills/bootstrap-agents/SKILL.md +258 -0
- package/template/.codex/skills/bootstrap-agents-fill/SKILL.md +25 -0
- package/template/.codex/skills/bootstrap-agents-provision/SKILL.md +22 -0
- package/template/.codex/skills/brainstorming/SKILL.md +177 -0
- package/template/.codex/skills/brand-guidelines/SKILL.md +44 -0
- package/template/.codex/skills/clean-code/SKILL.md +196 -0
- package/template/.codex/skills/clean-code/references/typescript.md +126 -0
- package/template/.codex/skills/code-review-pro/SKILL.md +152 -0
- package/template/.codex/skills/concise-planning/SKILL.md +107 -0
- package/template/.codex/skills/create-prd/SKILL.md +94 -0
- package/template/.codex/skills/create-prd-architecture/SKILL.md +72 -0
- package/template/.codex/skills/create-prd-compile/SKILL.md +85 -0
- package/template/.codex/skills/create-prd-design-system/SKILL.md +69 -0
- package/template/.codex/skills/create-prd-security/SKILL.md +66 -0
- package/template/.codex/skills/create-prd-stack/SKILL.md +84 -0
- package/template/.codex/skills/cross-layer-consistency/SKILL.md +117 -0
- package/template/.codex/skills/database-schema-design/SKILL.md +205 -0
- package/template/.codex/skills/database-schema-design/references/relational.md +228 -0
- package/template/.codex/skills/decompose-architecture/SKILL.md +72 -0
- package/template/.codex/skills/decompose-architecture-structure/SKILL.md +62 -0
- package/template/.codex/skills/decompose-architecture-validate/SKILL.md +72 -0
- package/template/.codex/skills/deployment-procedures/SKILL.md +241 -0
- package/template/.codex/skills/design-anti-cliche/SKILL.md +159 -0
- package/template/.codex/skills/design-direction/SKILL.md +45 -0
- package/template/.codex/skills/error-handling-patterns/SKILL.md +226 -0
- package/template/.codex/skills/error-handling-patterns/references/go.md +162 -0
- package/template/.codex/skills/error-handling-patterns/references/python.md +262 -0
- package/template/.codex/skills/error-handling-patterns/references/rust.md +112 -0
- package/template/.codex/skills/error-handling-patterns/references/typescript.md +178 -0
- package/template/.codex/skills/evolve-contract/SKILL.md +24 -0
- package/template/.codex/skills/evolve-feature/SKILL.md +18 -0
- package/template/.codex/skills/evolve-feature-cascade/SKILL.md +24 -0
- package/template/.codex/skills/evolve-feature-classify/SKILL.md +21 -0
- package/template/.codex/skills/find-skills/SKILL.md +145 -0
- package/template/.codex/skills/git-advanced/SKILL.md +972 -0
- package/template/.codex/skills/git-workflow/SKILL.md +420 -0
- package/template/.codex/skills/idea-extraction/SKILL.md +644 -0
- package/template/.codex/skills/ideate/SKILL.md +77 -0
- package/template/.codex/skills/ideate-discover/SKILL.md +89 -0
- package/template/.codex/skills/ideate-extract/SKILL.md +77 -0
- package/template/.codex/skills/ideate-validate/SKILL.md +75 -0
- package/template/.codex/skills/implement-slice/SKILL.md +64 -0
- package/template/.codex/skills/implement-slice-setup/SKILL.md +70 -0
- package/template/.codex/skills/implement-slice-tdd/SKILL.md +78 -0
- package/template/.codex/skills/logging-best-practices/SKILL.md +192 -0
- package/template/.codex/skills/logging-best-practices/references/go.md +49 -0
- package/template/.codex/skills/logging-best-practices/references/python.md +52 -0
- package/template/.codex/skills/logging-best-practices/references/typescript.md +215 -0
- package/template/.codex/skills/migration-management/SKILL.md +200 -0
- package/template/.codex/skills/migration-management/references/relational.md +214 -0
- package/template/.codex/skills/minimalist-surgical-development/SKILL.md +135 -0
- package/template/.codex/skills/parallel-agents/SKILL.md +165 -0
- package/template/.codex/skills/parallel-debugging/SKILL.md +135 -0
- package/template/.codex/skills/parallel-feature-development/SKILL.md +157 -0
- package/template/.codex/skills/performance-budgeting/SKILL.md +144 -0
- package/template/.codex/skills/pipeline-rubrics/SKILL.md +51 -0
- package/template/.codex/skills/pipeline-rubrics/references/architecture-rubric.md +19 -0
- package/template/.codex/skills/pipeline-rubrics/references/be-rubric.md +21 -0
- package/template/.codex/skills/pipeline-rubrics/references/fe-rubric.md +20 -0
- package/template/.codex/skills/pipeline-rubrics/references/ia-rubric.md +19 -0
- package/template/.codex/skills/pipeline-rubrics/references/scoring.md +32 -0
- package/template/.codex/skills/pipeline-rubrics/references/vision-rubric.md +12 -0
- package/template/.codex/skills/plan-phase/SKILL.md +62 -0
- package/template/.codex/skills/plan-phase-preflight/SKILL.md +75 -0
- package/template/.codex/skills/plan-phase-write/SKILL.md +85 -0
- package/template/.codex/skills/prd-templates/SKILL.md +107 -0
- package/template/.codex/skills/prd-templates/references/architecture-completeness-checklist.md +28 -0
- package/template/.codex/skills/prd-templates/references/architecture-design-template.md +88 -0
- package/template/.codex/skills/prd-templates/references/be-spec-classification.md +41 -0
- package/template/.codex/skills/prd-templates/references/be-spec-template.md +107 -0
- package/template/.codex/skills/prd-templates/references/bootstrap-verification-protocol.md +50 -0
- package/template/.codex/skills/prd-templates/references/constraint-exploration.md +41 -0
- package/template/.codex/skills/prd-templates/references/data-placement-template.md +74 -0
- package/template/.codex/skills/prd-templates/references/decision-confirmation-protocol.md +68 -0
- package/template/.codex/skills/prd-templates/references/decision-propagation.md +121 -0
- package/template/.codex/skills/prd-templates/references/decomposition-templates.md +226 -0
- package/template/.codex/skills/prd-templates/references/deep-ideation-loading-protocol.md +114 -0
- package/template/.codex/skills/prd-templates/references/design-system-decisions.md +198 -0
- package/template/.codex/skills/prd-templates/references/design-system-prerequisite-check.md +18 -0
- package/template/.codex/skills/prd-templates/references/domain-exhaustion-criteria.md +37 -0
- package/template/.codex/skills/prd-templates/references/engagement-tier-protocol.md +58 -0
- package/template/.codex/skills/prd-templates/references/engineering-standards-template.md +126 -0
- package/template/.codex/skills/prd-templates/references/evolution-layer-guidance.md +91 -0
- package/template/.codex/skills/prd-templates/references/expansion-modes.md +27 -0
- package/template/.codex/skills/prd-templates/references/fe-classification-procedures.md +47 -0
- package/template/.codex/skills/prd-templates/references/fe-spec-template.md +90 -0
- package/template/.codex/skills/prd-templates/references/feature-ledger-protocol.md +149 -0
- package/template/.codex/skills/prd-templates/references/folder-seeding-protocol.md +77 -0
- package/template/.codex/skills/prd-templates/references/fractal-cx-template.md +58 -0
- package/template/.codex/skills/prd-templates/references/fractal-feature-template.md +93 -0
- package/template/.codex/skills/prd-templates/references/fractal-node-index-template.md +55 -0
- package/template/.codex/skills/prd-templates/references/gate-applicability.md +92 -0
- package/template/.codex/skills/prd-templates/references/ideation-crosscut-template.md +36 -0
- package/template/.codex/skills/prd-templates/references/ideation-index-template.md +111 -0
- package/template/.codex/skills/prd-templates/references/ideation-meta-template.md +126 -0
- package/template/.codex/skills/prd-templates/references/infrastructure-report-template.md +71 -0
- package/template/.codex/skills/prd-templates/references/input-classification.md +23 -0
- package/template/.codex/skills/prd-templates/references/map-guard-protocol.md +65 -0
- package/template/.codex/skills/prd-templates/references/operational-templates.md +116 -0
- package/template/.codex/skills/prd-templates/references/persona-completeness-gate.md +20 -0
- package/template/.codex/skills/prd-templates/references/placeholder-guard-template.md +21 -0
- package/template/.codex/skills/prd-templates/references/placeholder-workflow-mapping.md +50 -0
- package/template/.codex/skills/prd-templates/references/shard-boundary-analysis.md +103 -0
- package/template/.codex/skills/prd-templates/references/shard-split-remediation.md +157 -0
- package/template/.codex/skills/prd-templates/references/skill-loading-protocol.md +36 -0
- package/template/.codex/skills/prd-templates/references/slice-completion-gates.md +29 -0
- package/template/.codex/skills/prd-templates/references/spec-coverage-sweep.md +44 -0
- package/template/.codex/skills/prd-templates/references/surface-model.md +61 -0
- package/template/.codex/skills/prd-templates/references/tdd-testing-policy.md +39 -0
- package/template/.codex/skills/prd-templates/references/vision-template.md +57 -0
- package/template/.codex/skills/prd-templates/references/workflow-checkpoint-protocol.md +112 -0
- package/template/.codex/skills/prd-templates/references/write-verification-protocol.md +57 -0
- package/template/.codex/skills/prompt-engineer/SKILL.md +203 -0
- package/template/.codex/skills/propagate-decision/SKILL.md +18 -0
- package/template/.codex/skills/propagate-decision-apply/SKILL.md +22 -0
- package/template/.codex/skills/propagate-decision-scan/SKILL.md +20 -0
- package/template/.codex/skills/regex-patterns/SKILL.md +333 -0
- package/template/.codex/skills/regex-patterns/references/go.md +44 -0
- package/template/.codex/skills/regex-patterns/references/javascript.md +63 -0
- package/template/.codex/skills/regex-patterns/references/python.md +77 -0
- package/template/.codex/skills/regex-patterns/references/rust.md +43 -0
- package/template/.codex/skills/remediate-pipeline/SKILL.md +18 -0
- package/template/.codex/skills/remediate-pipeline-assess/SKILL.md +21 -0
- package/template/.codex/skills/remediate-pipeline-execute/SKILL.md +23 -0
- package/template/.codex/skills/remediate-shard-split/SKILL.md +21 -0
- package/template/.codex/skills/resolve-ambiguity/SKILL.md +278 -0
- package/template/.codex/skills/security-scanning-security-hardening/SKILL.md +231 -0
- package/template/.codex/skills/session-continuity/SKILL.md +732 -0
- package/template/.codex/skills/session-continuity/protocols/01-session-resumption.md +38 -0
- package/template/.codex/skills/session-continuity/protocols/02-progress-generation.md +85 -0
- package/template/.codex/skills/session-continuity/protocols/03-progress-update.md +70 -0
- package/template/.codex/skills/session-continuity/protocols/04-pattern-extraction.md +60 -0
- package/template/.codex/skills/session-continuity/protocols/05-session-close.md +37 -0
- package/template/.codex/skills/session-continuity/protocols/06-decision-analysis.md +84 -0
- package/template/.codex/skills/session-continuity/protocols/07-spec-pipeline-generation.md +48 -0
- package/template/.codex/skills/session-continuity/protocols/08-spec-pipeline-update.md +65 -0
- package/template/.codex/skills/session-continuity/protocols/09-parallel-claim.md +122 -0
- package/template/.codex/skills/session-continuity/protocols/10-placeholder-verification-gate.md +83 -0
- package/template/.codex/skills/session-continuity/protocols/11-parallel-synthesis.md +21 -0
- package/template/.codex/skills/session-continuity/protocols/ambiguity-gates.md +48 -0
- package/template/.codex/skills/setup/README.md +24 -0
- package/template/.codex/skills/setup/setup-cfsa.md +200 -0
- package/template/.codex/skills/setup/setup-fill-placeholders.md +192 -0
- package/template/.codex/skills/setup/setup-provision-skills.md +82 -0
- package/template/.codex/skills/setup/setup-verify.md +89 -0
- package/template/.codex/skills/setup-workspace/SKILL.md +83 -0
- package/template/.codex/skills/setup-workspace-cicd/SKILL.md +56 -0
- package/template/.codex/skills/setup-workspace-data/SKILL.md +69 -0
- package/template/.codex/skills/setup-workspace-hosting/SKILL.md +59 -0
- package/template/.codex/skills/setup-workspace-scaffold/SKILL.md +72 -0
- package/template/.codex/skills/skill-creator/SKILL.md +203 -0
- package/template/.codex/skills/spec-writing/SKILL.md +110 -0
- package/template/.codex/skills/sync-kit/SKILL.md +23 -0
- package/template/.codex/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/template/.codex/skills/systematic-debugging/SKILL.md +297 -0
- package/template/.codex/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/template/.codex/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/template/.codex/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/template/.codex/skills/systematic-debugging/find-polluter.sh +63 -0
- package/template/.codex/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/template/.codex/skills/systematic-debugging/test-academic.md +14 -0
- package/template/.codex/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/template/.codex/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/template/.codex/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/template/.codex/skills/tdd-workflow/SKILL.md +186 -0
- package/template/.codex/skills/tdd-workflow/references/typescript.md +231 -0
- package/template/.codex/skills/tech-stack-catalog/SKILL.md +49 -0
- package/template/.codex/skills/tech-stack-catalog/references/constraint-questions.md +237 -0
- package/template/.codex/skills/tech-stack-catalog/references/dev-tooling-decisions.md +37 -0
- package/template/.codex/skills/tech-stack-catalog/references/surface-decision-tables.md +69 -0
- package/template/.codex/skills/technical-writer/SKILL.md +242 -0
- package/template/.codex/skills/testing-strategist/SKILL.md +319 -0
- package/template/.codex/skills/testing-strategist/references/typescript.md +328 -0
- package/template/.codex/skills/update-architecture-map/SKILL.md +21 -0
- package/template/.codex/skills/utilities/resolve-skill.md +195 -0
- package/template/.codex/skills/validate-phase/SKILL.md +62 -0
- package/template/.codex/skills/validate-phase-quality/SKILL.md +67 -0
- package/template/.codex/skills/validate-phase-readiness/SKILL.md +74 -0
- package/template/.codex/skills/verification-before-completion/SKILL.md +97 -0
- package/template/.codex/skills/verify-infrastructure/SKILL.md +25 -0
- package/template/.codex/skills/workflow-automation/SKILL.md +166 -0
- package/template/.codex/skills/workflow-automation/references/inngest.md +88 -0
- package/template/.codex/skills/workflow-automation/references/temporal.md +64 -0
- package/template/.codex/skills/write-architecture-spec/SKILL.md +78 -0
- package/template/.codex/skills/write-architecture-spec-deepen/SKILL.md +82 -0
- package/template/.codex/skills/write-architecture-spec-design/SKILL.md +80 -0
- package/template/.codex/skills/write-be-spec/SKILL.md +75 -0
- package/template/.codex/skills/write-be-spec-classify/SKILL.md +80 -0
- package/template/.codex/skills/write-be-spec-write/SKILL.md +99 -0
- package/template/.codex/skills/write-fe-spec/SKILL.md +79 -0
- package/template/.codex/skills/write-fe-spec-classify/SKILL.md +77 -0
- package/template/.codex/skills/write-fe-spec-write/SKILL.md +88 -0
- package/template/.factory/README.md +2 -3
- package/template/.factory/instructions/workflow.md +3 -3
- package/template/.factory/kit-sync.md +3 -3
- package/template/.factory/skills/completion-checklist/SKILL.md +3 -3
- package/template/.factory/skills/parallel-agents/SKILL.md +1 -1
- package/template/.factory/skills/plan-phase/SKILL.md +2 -2
- package/template/.factory/skills/plan-phase-preflight/SKILL.md +2 -2
- package/template/.factory/skills/session-continuity/SKILL.md +6 -6
- package/template/.factory/skills/session-continuity/protocols/01-session-resumption.md +1 -1
- package/template/.factory/skills/session-continuity/protocols/02-progress-generation.md +3 -3
- package/template/.factory/skills/session-continuity/protocols/03-progress-update.md +4 -4
- package/template/.factory/skills/session-continuity/protocols/07-spec-pipeline-generation.md +1 -1
- package/template/.factory/skills/session-continuity/protocols/08-spec-pipeline-update.md +2 -2
- package/template/.factory/skills/session-continuity/protocols/11-parallel-synthesis.md +1 -1
- package/template/.factory/skills/setup-cfsa/SKILL.md +1 -1
- package/template/.factory/skills/write-architecture-spec/SKILL.md +2 -2
- package/template/.factory/skills/write-architecture-spec-deepen/SKILL.md +1 -1
- package/template/.factory/skills/write-architecture-spec-design/SKILL.md +1 -1
- package/template/.factory/skills/write-be-spec/SKILL.md +3 -3
- package/template/.factory/skills/write-be-spec-classify/SKILL.md +1 -1
- package/template/.factory/skills/write-be-spec-write/SKILL.md +1 -1
- package/template/.factory/skills/write-fe-spec/SKILL.md +3 -3
- package/template/.factory/skills/write-fe-spec-write/SKILL.md +1 -1
- package/template/.memory/README.md +1 -0
- package/template/.memory/mcp-server/README.md +10 -2
- package/template/.memory/mcp-server/client.mjs +61 -18
- package/template/.memory/mcp-server/daemon.mjs +8 -3
- package/template/.memory/mcp-server/runtime.mjs +51 -14
- package/template/.memory/mcp-server/start.mjs +4 -2
- package/template/.memory/migrate/migrate-legacy.mjs +1 -0
- package/template/.memory/pipeline/README.md +1 -0
- package/template/CLAUDE.md +4 -4
- package/template/CODEX.md +6 -53
- package/template/GEMINI.md +2 -2
- package/template/docs/README.md +5 -2
- package/template/docs/kit-architecture.md +36 -19
- package/template/docs/progress-state-catalog.md +48 -0
- package/template/.factory/progress/memory/.gitkeep +0 -0
- /package/template/{.agent/progress → .codex/skills/skill-creator/references}/.gitkeep +0 -0
- /package/template/{.agent/progress/memory → .codex/skills/skill-creator/scripts}/.gitkeep +0 -0
- /package/template/{.agent/progress/sessions → .memory/pipeline/progress}/.gitkeep +0 -0
- /package/template/{.claude/progress → .memory/pipeline/progress/memory}/.gitkeep +0 -0
- /package/template/{.claude/progress/memory → .memory/pipeline/progress/phases}/.gitkeep +0 -0
- /package/template/{.claude → .memory/pipeline}/progress/sessions/.gitkeep +0 -0
- /package/template/{.factory/progress → .memory/pipeline/progress/slices}/.gitkeep +0 -0
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: product-marketing-context
|
|
3
|
+
description: "When the user wants to create or update their product marketing context document. Also use when the user mentions 'product context,' 'marketing context,' 'set up context,' 'positioning,' or wants to avoid repeating foundational information across marketing tasks. Creates `.agents/product-marketing-context.md` that other marketing skills reference."
|
|
4
|
+
metadata:
|
|
5
|
+
version: 1.1.0
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Product Marketing Context
|
|
9
|
+
|
|
10
|
+
You help users create and maintain a product marketing context document. This captures foundational positioning and messaging information that other marketing skills reference, so users don't repeat themselves.
|
|
11
|
+
|
|
12
|
+
The document is stored at `.agents/product-marketing-context.md`.
|
|
13
|
+
|
|
14
|
+
## Workflow
|
|
15
|
+
|
|
16
|
+
### Step 1: Check for Existing Context
|
|
17
|
+
|
|
18
|
+
First, check if `.agents/product-marketing-context.md` already exists. Also check `.codex/product-marketing-context.md` for older setups — if found there but not in `.agents/`, offer to move it.
|
|
19
|
+
|
|
20
|
+
**If it exists:**
|
|
21
|
+
- Read it and summarize what's captured
|
|
22
|
+
- Ask which sections they want to update
|
|
23
|
+
- Only gather info for those sections
|
|
24
|
+
|
|
25
|
+
**If it doesn't exist, offer two options:**
|
|
26
|
+
|
|
27
|
+
1. **Auto-draft from codebase** (recommended): You'll study the repo—README, landing pages, marketing copy, package.json, etc.—and draft a V1 of the context document. The user then reviews, corrects, and fills gaps. This is faster than starting from scratch.
|
|
28
|
+
|
|
29
|
+
2. **Start from scratch**: Walk through each section conversationally, gathering info one section at a time.
|
|
30
|
+
|
|
31
|
+
Most users prefer option 1. After presenting the draft, ask: "What needs correcting? What's missing?"
|
|
32
|
+
|
|
33
|
+
### Step 2: Gather Information
|
|
34
|
+
|
|
35
|
+
**If auto-drafting:**
|
|
36
|
+
1. Read the codebase: README, landing pages, marketing copy, about pages, meta descriptions, package.json, any existing docs
|
|
37
|
+
2. Draft all sections based on what you find
|
|
38
|
+
3. Present the draft and ask what needs correcting or is missing
|
|
39
|
+
4. Iterate until the user is satisfied
|
|
40
|
+
|
|
41
|
+
**If starting from scratch:**
|
|
42
|
+
Walk through each section below conversationally, one at a time. Don't dump all questions at once.
|
|
43
|
+
|
|
44
|
+
For each section:
|
|
45
|
+
1. Briefly explain what you're capturing
|
|
46
|
+
2. Ask relevant questions
|
|
47
|
+
3. Confirm accuracy
|
|
48
|
+
4. Move to the next
|
|
49
|
+
|
|
50
|
+
**Important:** Push for verbatim customer language. Exact phrases are more valuable than polished descriptions.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Sections to Capture
|
|
55
|
+
|
|
56
|
+
### 1. Product Overview
|
|
57
|
+
- One-line description
|
|
58
|
+
- What it does (2-3 sentences)
|
|
59
|
+
- Product category (what "shelf" you sit on—how customers search for you)
|
|
60
|
+
- Product type (SaaS, marketplace, e-commerce, service, etc.)
|
|
61
|
+
- Business model and pricing
|
|
62
|
+
|
|
63
|
+
### 2. Target Audience
|
|
64
|
+
- Target company type (industry, size, stage)
|
|
65
|
+
- Target decision-makers (roles, departments)
|
|
66
|
+
- Primary use case (the main problem you solve)
|
|
67
|
+
- Jobs to be done (2-3 things customers "hire" you for)
|
|
68
|
+
- Specific use cases or scenarios
|
|
69
|
+
|
|
70
|
+
### 3. Personas (B2B only)
|
|
71
|
+
If multiple stakeholders are involved in buying, capture for each:
|
|
72
|
+
- User, Champion, Decision Maker, Financial Buyer, Technical Influencer
|
|
73
|
+
- What each cares about, their challenge, and the value you promise them
|
|
74
|
+
|
|
75
|
+
### 4. Problems & Pain Points
|
|
76
|
+
- Core challenge customers face before finding you
|
|
77
|
+
- Why current solutions fall short
|
|
78
|
+
- What it costs them (time, money, opportunities)
|
|
79
|
+
- Emotional tension (stress, fear, doubt)
|
|
80
|
+
|
|
81
|
+
### 5. Competitive Landscape
|
|
82
|
+
- **Direct competitors**: Same solution, same problem (e.g., Calendly vs SavvyCal)
|
|
83
|
+
- **Secondary competitors**: Different solution, same problem (e.g., Calendly vs Superhuman scheduling)
|
|
84
|
+
- **Indirect competitors**: Conflicting approach (e.g., Calendly vs personal assistant)
|
|
85
|
+
- How each falls short for customers
|
|
86
|
+
|
|
87
|
+
### 6. Differentiation
|
|
88
|
+
- Key differentiators (capabilities alternatives lack)
|
|
89
|
+
- How you solve it differently
|
|
90
|
+
- Why that's better (benefits)
|
|
91
|
+
- Why customers choose you over alternatives
|
|
92
|
+
|
|
93
|
+
### 7. Objections & Anti-Personas
|
|
94
|
+
- Top 3 objections heard in sales and how to address them
|
|
95
|
+
- Who is NOT a good fit (anti-persona)
|
|
96
|
+
|
|
97
|
+
### 8. Switching Dynamics
|
|
98
|
+
The JTBD Four Forces:
|
|
99
|
+
- **Push**: What frustrations drive them away from current solution
|
|
100
|
+
- **Pull**: What attracts them to you
|
|
101
|
+
- **Habit**: What keeps them stuck with current approach
|
|
102
|
+
- **Anxiety**: What worries them about switching
|
|
103
|
+
|
|
104
|
+
### 9. Customer Language
|
|
105
|
+
- How customers describe the problem (verbatim)
|
|
106
|
+
- How they describe your solution (verbatim)
|
|
107
|
+
- Words/phrases to use
|
|
108
|
+
- Words/phrases to avoid
|
|
109
|
+
- Glossary of product-specific terms
|
|
110
|
+
|
|
111
|
+
### 10. Brand Voice
|
|
112
|
+
- Tone (professional, casual, playful, etc.)
|
|
113
|
+
- Communication style (direct, conversational, technical)
|
|
114
|
+
- Brand personality (3-5 adjectives)
|
|
115
|
+
|
|
116
|
+
### 11. Proof Points
|
|
117
|
+
- Key metrics or results to cite
|
|
118
|
+
- Notable customers/logos
|
|
119
|
+
- Testimonial snippets
|
|
120
|
+
- Main value themes and supporting evidence
|
|
121
|
+
|
|
122
|
+
### 12. Goals
|
|
123
|
+
- Primary business goal
|
|
124
|
+
- Key conversion action (what you want people to do)
|
|
125
|
+
- Current metrics (if known)
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Step 3: Create the Document
|
|
130
|
+
|
|
131
|
+
After gathering information, create `.agents/product-marketing-context.md` with this structure:
|
|
132
|
+
|
|
133
|
+
```markdown
|
|
134
|
+
# Product Marketing Context
|
|
135
|
+
|
|
136
|
+
*Last updated: [date]*
|
|
137
|
+
|
|
138
|
+
## Product Overview
|
|
139
|
+
**One-liner:**
|
|
140
|
+
**What it does:**
|
|
141
|
+
**Product category:**
|
|
142
|
+
**Product type:**
|
|
143
|
+
**Business model:**
|
|
144
|
+
|
|
145
|
+
## Target Audience
|
|
146
|
+
**Target companies:**
|
|
147
|
+
**Decision-makers:**
|
|
148
|
+
**Primary use case:**
|
|
149
|
+
**Jobs to be done:**
|
|
150
|
+
-
|
|
151
|
+
**Use cases:**
|
|
152
|
+
-
|
|
153
|
+
|
|
154
|
+
## Personas
|
|
155
|
+
| Persona | Cares about | Challenge | Value we promise |
|
|
156
|
+
|---------|-------------|-----------|------------------|
|
|
157
|
+
| | | | |
|
|
158
|
+
|
|
159
|
+
## Problems & Pain Points
|
|
160
|
+
**Core problem:**
|
|
161
|
+
**Why alternatives fall short:**
|
|
162
|
+
-
|
|
163
|
+
**What it costs them:**
|
|
164
|
+
**Emotional tension:**
|
|
165
|
+
|
|
166
|
+
## Competitive Landscape
|
|
167
|
+
**Direct:** [Competitor] — falls short because...
|
|
168
|
+
**Secondary:** [Approach] — falls short because...
|
|
169
|
+
**Indirect:** [Alternative] — falls short because...
|
|
170
|
+
|
|
171
|
+
## Differentiation
|
|
172
|
+
**Key differentiators:**
|
|
173
|
+
-
|
|
174
|
+
**How we do it differently:**
|
|
175
|
+
**Why that's better:**
|
|
176
|
+
**Why customers choose us:**
|
|
177
|
+
|
|
178
|
+
## Objections
|
|
179
|
+
| Objection | Response |
|
|
180
|
+
|-----------|----------|
|
|
181
|
+
| | |
|
|
182
|
+
|
|
183
|
+
**Anti-persona:**
|
|
184
|
+
|
|
185
|
+
## Switching Dynamics
|
|
186
|
+
**Push:**
|
|
187
|
+
**Pull:**
|
|
188
|
+
**Habit:**
|
|
189
|
+
**Anxiety:**
|
|
190
|
+
|
|
191
|
+
## Customer Language
|
|
192
|
+
**How they describe the problem:**
|
|
193
|
+
- "[verbatim]"
|
|
194
|
+
**How they describe us:**
|
|
195
|
+
- "[verbatim]"
|
|
196
|
+
**Words to use:**
|
|
197
|
+
**Words to avoid:**
|
|
198
|
+
**Glossary:**
|
|
199
|
+
| Term | Meaning |
|
|
200
|
+
|------|---------|
|
|
201
|
+
| | |
|
|
202
|
+
|
|
203
|
+
## Brand Voice
|
|
204
|
+
**Tone:**
|
|
205
|
+
**Style:**
|
|
206
|
+
**Personality:**
|
|
207
|
+
|
|
208
|
+
## Proof Points
|
|
209
|
+
**Metrics:**
|
|
210
|
+
**Customers:**
|
|
211
|
+
**Testimonials:**
|
|
212
|
+
> "[quote]" — [who]
|
|
213
|
+
**Value themes:**
|
|
214
|
+
| Theme | Proof |
|
|
215
|
+
|-------|-------|
|
|
216
|
+
| | |
|
|
217
|
+
|
|
218
|
+
## Goals
|
|
219
|
+
**Business goal:**
|
|
220
|
+
**Conversion action:**
|
|
221
|
+
**Current metrics:**
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Step 4: Confirm and Save
|
|
227
|
+
|
|
228
|
+
- Show the completed document
|
|
229
|
+
- Ask if anything needs adjustment
|
|
230
|
+
- Save to `.agents/product-marketing-context.md`
|
|
231
|
+
- Tell them: "Other marketing skills will now use this context automatically. Run `/product-marketing-context` anytime to update it."
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## Tips
|
|
236
|
+
|
|
237
|
+
- **Be specific**: Ask "What's the #1 frustration that brings them to you?" not "What problem do they solve?"
|
|
238
|
+
- **Capture exact words**: Customer language beats polished descriptions
|
|
239
|
+
- **Ask for examples**: "Can you give me an example?" unlocks better answers
|
|
240
|
+
- **Validate as you go**: Summarize each section and confirm before moving on
|
|
241
|
+
- **Skip what doesn't apply**: Not every product needs all sections (e.g., Personas for B2C)
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tmux-processes
|
|
3
|
+
description: Patterns for running long-lived processes in tmux. Use when starting dev servers, watchers, tilt, or any process expected to outlive the conversation.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# tmux Process Management
|
|
7
|
+
|
|
8
|
+
## Interactive Shell Requirement
|
|
9
|
+
|
|
10
|
+
**Use send-keys pattern for reliable shell initialization.** Creating a session spawns an interactive shell automatically. Use `send-keys` to run commands within that shell, ensuring PATH, direnv, and other initialization runs properly.
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
# WRONG - inline command bypasses shell init, breaks PATH/direnv
|
|
14
|
+
tmux new-session -d -s "$SESSION" -n main 'tilt up'
|
|
15
|
+
|
|
16
|
+
# CORRECT - create session, then send command to interactive shell
|
|
17
|
+
tmux new-session -d -s "$SESSION" -n main
|
|
18
|
+
tmux send-keys -t "$SESSION:main" 'tilt up' Enter
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Session Naming Convention
|
|
22
|
+
|
|
23
|
+
Always derive session name from the project:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
For multiple processes in one project, use windows not separate sessions:
|
|
30
|
+
- Session: `myapp`
|
|
31
|
+
- Windows: `server`, `tests`, `logs`
|
|
32
|
+
|
|
33
|
+
## Starting Processes
|
|
34
|
+
|
|
35
|
+
### Single Process
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
|
|
39
|
+
|
|
40
|
+
# Create session with named window, then send command
|
|
41
|
+
tmux new-session -d -s "$SESSION" -n main
|
|
42
|
+
tmux send-keys -t "$SESSION:main" '<command>' Enter
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Idempotent Start
|
|
46
|
+
|
|
47
|
+
Check if already running before starting:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
|
|
51
|
+
|
|
52
|
+
if ! tmux has-session -t "$SESSION" 2>/dev/null; then
|
|
53
|
+
tmux new-session -d -s "$SESSION" -n main
|
|
54
|
+
tmux send-keys -t "$SESSION:main" '<command>' Enter
|
|
55
|
+
else
|
|
56
|
+
echo "Session $SESSION already exists"
|
|
57
|
+
fi
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Adding Windows to Existing Session
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
|
|
64
|
+
|
|
65
|
+
# Add a new window if it doesn't exist
|
|
66
|
+
if ! tmux list-windows -t "$SESSION" -F '#{window_name}' | grep -q "^server$"; then
|
|
67
|
+
tmux new-window -t "$SESSION" -n server
|
|
68
|
+
tmux send-keys -t "$SESSION:server" 'npm run dev' Enter
|
|
69
|
+
else
|
|
70
|
+
echo "Window 'server' already exists"
|
|
71
|
+
fi
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Multiple Processes (Windows)
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
|
|
78
|
+
|
|
79
|
+
# Create session with first process
|
|
80
|
+
tmux new-session -d -s "$SESSION" -n server
|
|
81
|
+
tmux send-keys -t "$SESSION:server" 'npm run dev' Enter
|
|
82
|
+
|
|
83
|
+
# Add more windows
|
|
84
|
+
tmux new-window -t "$SESSION" -n tests
|
|
85
|
+
tmux send-keys -t "$SESSION:tests" 'npm run test:watch' Enter
|
|
86
|
+
|
|
87
|
+
tmux new-window -t "$SESSION" -n logs
|
|
88
|
+
tmux send-keys -t "$SESSION:logs" 'tail -f logs/app.log' Enter
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Monitoring Output
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
|
|
95
|
+
|
|
96
|
+
# Last 50 lines from first window
|
|
97
|
+
tmux capture-pane -p -t "$SESSION" -S -50
|
|
98
|
+
|
|
99
|
+
# From specific window
|
|
100
|
+
tmux capture-pane -p -t "$SESSION:server" -S -50
|
|
101
|
+
|
|
102
|
+
# Check for errors
|
|
103
|
+
tmux capture-pane -p -t "$SESSION" -S -100 | rg -i "error|fail|exception"
|
|
104
|
+
|
|
105
|
+
# Check for ready indicators
|
|
106
|
+
tmux capture-pane -p -t "$SESSION:server" -S -50 | rg -i "listening|ready|started"
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## Lifecycle Management
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
|
|
113
|
+
|
|
114
|
+
# List all sessions (see what exists)
|
|
115
|
+
tmux ls
|
|
116
|
+
|
|
117
|
+
# List windows in current session
|
|
118
|
+
tmux list-windows -t "$SESSION"
|
|
119
|
+
|
|
120
|
+
# Kill only this project's session
|
|
121
|
+
tmux kill-session -t "$SESSION"
|
|
122
|
+
|
|
123
|
+
# Kill specific window
|
|
124
|
+
tmux kill-window -t "$SESSION:tests"
|
|
125
|
+
|
|
126
|
+
# Send keys to a window (e.g., Ctrl+C to stop)
|
|
127
|
+
tmux send-keys -t "$SESSION:server" C-c
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Isolation Rules
|
|
131
|
+
|
|
132
|
+
- **Never** use `tmux kill-server`
|
|
133
|
+
- **Never** kill sessions not matching current project
|
|
134
|
+
- **Always** derive session name from git root or pwd
|
|
135
|
+
- **Always** verify session name before kill operations
|
|
136
|
+
- Other Claude Code instances may have their own sessions running
|
|
137
|
+
|
|
138
|
+
## When to Use tmux
|
|
139
|
+
|
|
140
|
+
| Scenario | Use tmux? |
|
|
141
|
+
|----------|-----------|
|
|
142
|
+
| `tilt up` | Yes, always |
|
|
143
|
+
| Dev server (`npm run dev`, `rails s`) | Yes |
|
|
144
|
+
| File watcher (`npm run watch`) | Yes |
|
|
145
|
+
| Test watcher (`npm run test:watch`) | Yes |
|
|
146
|
+
| Database server | Yes |
|
|
147
|
+
| One-shot build (`npm run build`) | No |
|
|
148
|
+
| Quick command (<10s) | No |
|
|
149
|
+
| Need stdout directly in conversation | No |
|
|
150
|
+
|
|
151
|
+
## Checking Process Status
|
|
152
|
+
|
|
153
|
+
```bash
|
|
154
|
+
SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
|
|
155
|
+
|
|
156
|
+
# Check session exists
|
|
157
|
+
tmux has-session -t "$SESSION" 2>/dev/null && echo "session exists" || echo "no session"
|
|
158
|
+
|
|
159
|
+
# List windows and their status
|
|
160
|
+
tmux list-windows -t "$SESSION" -F '#{window_name}: #{pane_current_command}'
|
|
161
|
+
|
|
162
|
+
# Check if specific window exists
|
|
163
|
+
tmux list-windows -t "$SESSION" -F '#{window_name}' | grep -q "^server$" && echo "server window exists"
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## Restarting a Process
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
|
|
170
|
+
|
|
171
|
+
# Send Ctrl+C then restart command
|
|
172
|
+
tmux send-keys -t "$SESSION:server" C-c
|
|
173
|
+
sleep 1
|
|
174
|
+
tmux send-keys -t "$SESSION:server" 'npm run dev' Enter
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## Common Patterns
|
|
178
|
+
|
|
179
|
+
### Start dev server if not running
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
|
|
183
|
+
|
|
184
|
+
if ! tmux has-session -t "$SESSION" 2>/dev/null; then
|
|
185
|
+
tmux new-session -d -s "$SESSION" -n server
|
|
186
|
+
tmux send-keys -t "$SESSION:server" 'npm run dev' Enter
|
|
187
|
+
echo "Started dev server in tmux session: $SESSION"
|
|
188
|
+
elif ! tmux list-windows -t "$SESSION" -F '#{window_name}' | grep -q "^server$"; then
|
|
189
|
+
tmux new-window -t "$SESSION" -n server
|
|
190
|
+
tmux send-keys -t "$SESSION:server" 'npm run dev' Enter
|
|
191
|
+
echo "Added server window to session: $SESSION"
|
|
192
|
+
else
|
|
193
|
+
echo "Server already running in session: $SESSION"
|
|
194
|
+
fi
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Wait for server ready
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
SESSION=$(basename $(git rev-parse --show-toplevel 2>/dev/null) || basename $PWD)
|
|
201
|
+
|
|
202
|
+
# Poll for ready message
|
|
203
|
+
for i in {1..30}; do
|
|
204
|
+
if tmux capture-pane -p -t "$SESSION:server" -S -20 | rg -q "listening|ready"; then
|
|
205
|
+
echo "Server ready"
|
|
206
|
+
break
|
|
207
|
+
fi
|
|
208
|
+
sleep 1
|
|
209
|
+
done
|
|
210
|
+
```
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: using-tmux-for-interactive-commands
|
|
3
|
+
description: Use when you need to run interactive CLI tools (vim, git rebase -i, Python REPL, etc.) that require real-time input/output - provides tmux-based approach for controlling interactive sessions through detached sessions and send-keys
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Using tmux for Interactive Commands
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Interactive CLI tools (vim, interactive git rebase, REPLs, etc.) cannot be controlled through standard bash because they require a real terminal. tmux provides detached sessions that can be controlled programmatically via `send-keys` and `capture-pane`.
|
|
11
|
+
|
|
12
|
+
## When to Use
|
|
13
|
+
|
|
14
|
+
**Use tmux when:**
|
|
15
|
+
- Running vim, nano, or other text editors programmatically
|
|
16
|
+
- Controlling interactive REPLs (Python, Node, etc.)
|
|
17
|
+
- Handling interactive git commands (`git rebase -i`, `git add -p`)
|
|
18
|
+
- Working with full-screen terminal apps (htop, etc.)
|
|
19
|
+
- Commands that require terminal control codes or readline
|
|
20
|
+
|
|
21
|
+
**Don't use for:**
|
|
22
|
+
- Simple non-interactive commands (use regular Bash tool)
|
|
23
|
+
- Commands that accept input via stdin redirection
|
|
24
|
+
- One-shot commands that don't need interaction
|
|
25
|
+
|
|
26
|
+
## Quick Reference
|
|
27
|
+
|
|
28
|
+
| Task | Command |
|
|
29
|
+
|------|---------|
|
|
30
|
+
| Start session | `tmux new-session -d -s <name> <command>` |
|
|
31
|
+
| Send input | `tmux send-keys -t <name> 'text' Enter` |
|
|
32
|
+
| Capture output | `tmux capture-pane -t <name> -p` |
|
|
33
|
+
| Stop session | `tmux kill-session -t <name>` |
|
|
34
|
+
| List sessions | `tmux list-sessions` |
|
|
35
|
+
|
|
36
|
+
## Core Pattern
|
|
37
|
+
|
|
38
|
+
### Before (Won't Work)
|
|
39
|
+
```bash
|
|
40
|
+
# This hangs because vim expects interactive terminal
|
|
41
|
+
bash -c "vim file.txt"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### After (Works)
|
|
45
|
+
```bash
|
|
46
|
+
# Create detached tmux session
|
|
47
|
+
tmux new-session -d -s edit_session vim file.txt
|
|
48
|
+
|
|
49
|
+
# Send commands (Enter, Escape are tmux key names)
|
|
50
|
+
tmux send-keys -t edit_session 'i' 'Hello World' Escape ':wq' Enter
|
|
51
|
+
|
|
52
|
+
# Capture what's on screen
|
|
53
|
+
tmux capture-pane -t edit_session -p
|
|
54
|
+
|
|
55
|
+
# Clean up
|
|
56
|
+
tmux kill-session -t edit_session
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Implementation
|
|
60
|
+
|
|
61
|
+
### Basic Workflow
|
|
62
|
+
|
|
63
|
+
1. **Create detached session** with the interactive command
|
|
64
|
+
2. **Wait briefly** for initialization (100-500ms depending on command)
|
|
65
|
+
3. **Send input** using `send-keys` (can send special keys like Enter, Escape)
|
|
66
|
+
4. **Capture output** using `capture-pane -p` to see current screen state
|
|
67
|
+
5. **Repeat** steps 3-4 as needed
|
|
68
|
+
6. **Terminate** session when done
|
|
69
|
+
|
|
70
|
+
### Special Keys
|
|
71
|
+
|
|
72
|
+
Common tmux key names:
|
|
73
|
+
- `Enter` - Return/newline
|
|
74
|
+
- `Escape` - ESC key
|
|
75
|
+
- `C-c` - Ctrl+C
|
|
76
|
+
- `C-x` - Ctrl+X
|
|
77
|
+
- `Up`, `Down`, `Left`, `Right` - Arrow keys
|
|
78
|
+
- `Space` - Space bar
|
|
79
|
+
- `BSpace` - Backspace
|
|
80
|
+
|
|
81
|
+
### Working Directory
|
|
82
|
+
|
|
83
|
+
Specify working directory when creating session:
|
|
84
|
+
```bash
|
|
85
|
+
tmux new-session -d -s git_session -c /path/to/repo git rebase -i HEAD~3
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Helper Wrapper
|
|
89
|
+
|
|
90
|
+
For easier use, see `/home/jesse/git/interactive-command/tmux-wrapper.sh`:
|
|
91
|
+
```bash
|
|
92
|
+
# Start session
|
|
93
|
+
/path/to/tmux-wrapper.sh start <session-name> <command> [args...]
|
|
94
|
+
|
|
95
|
+
# Send input
|
|
96
|
+
/path/to/tmux-wrapper.sh send <session-name> 'text' Enter
|
|
97
|
+
|
|
98
|
+
# Capture current state
|
|
99
|
+
/path/to/tmux-wrapper.sh capture <session-name>
|
|
100
|
+
|
|
101
|
+
# Stop
|
|
102
|
+
/path/to/tmux-wrapper.sh stop <session-name>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Common Patterns
|
|
106
|
+
|
|
107
|
+
### Python REPL
|
|
108
|
+
```bash
|
|
109
|
+
tmux new-session -d -s python python3 -i
|
|
110
|
+
tmux send-keys -t python 'import math' Enter
|
|
111
|
+
tmux send-keys -t python 'print(math.pi)' Enter
|
|
112
|
+
tmux capture-pane -t python -p # See output
|
|
113
|
+
tmux kill-session -t python
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Vim Editing
|
|
117
|
+
```bash
|
|
118
|
+
tmux new-session -d -s vim vim /tmp/file.txt
|
|
119
|
+
sleep 0.3 # Wait for vim to start
|
|
120
|
+
tmux send-keys -t vim 'i' 'New content' Escape ':wq' Enter
|
|
121
|
+
# File is now saved
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Interactive Git Rebase
|
|
125
|
+
```bash
|
|
126
|
+
tmux new-session -d -s rebase -c /repo/path git rebase -i HEAD~3
|
|
127
|
+
sleep 0.5
|
|
128
|
+
tmux capture-pane -t rebase -p # See rebase editor
|
|
129
|
+
# Send commands to modify rebase instructions
|
|
130
|
+
tmux send-keys -t rebase 'Down' 'Home' 'squash' Escape
|
|
131
|
+
tmux send-keys -t rebase ':wq' Enter
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Common Mistakes
|
|
135
|
+
|
|
136
|
+
### Not Waiting After Session Start
|
|
137
|
+
**Problem:** Capturing immediately after `new-session` shows blank screen
|
|
138
|
+
|
|
139
|
+
**Fix:** Add brief sleep (100-500ms) before first capture
|
|
140
|
+
```bash
|
|
141
|
+
tmux new-session -d -s sess command
|
|
142
|
+
sleep 0.3 # Let command initialize
|
|
143
|
+
tmux capture-pane -t sess -p
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Forgetting Enter Key
|
|
147
|
+
**Problem:** Commands typed but not executed
|
|
148
|
+
|
|
149
|
+
**Fix:** Explicitly send Enter
|
|
150
|
+
```bash
|
|
151
|
+
tmux send-keys -t sess 'print("hello")' Enter # Note: Enter is separate argument
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Using Wrong Key Names
|
|
155
|
+
**Problem:** `tmux send-keys -t sess '\n'` doesn't work
|
|
156
|
+
|
|
157
|
+
**Fix:** Use tmux key names: `Enter`, not `\n`
|
|
158
|
+
```bash
|
|
159
|
+
tmux send-keys -t sess 'text' Enter # ✓
|
|
160
|
+
tmux send-keys -t sess 'text\n' # ✗
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Not Cleaning Up Sessions
|
|
164
|
+
**Problem:** Orphaned tmux sessions accumulate
|
|
165
|
+
|
|
166
|
+
**Fix:** Always kill sessions when done
|
|
167
|
+
```bash
|
|
168
|
+
tmux kill-session -t session_name
|
|
169
|
+
# Or check for existing: tmux has-session -t name 2>/dev/null
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Real-World Impact
|
|
173
|
+
|
|
174
|
+
- Enables programmatic control of vim/nano for file editing
|
|
175
|
+
- Allows automation of interactive git workflows (rebase, add -p)
|
|
176
|
+
- Makes REPL-based testing/debugging possible
|
|
177
|
+
- Unblocks any tool that requires terminal interaction
|
|
178
|
+
- No need to build custom PTY management - tmux handles it all
|