cfsa-antigravity 1.0.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.
Files changed (378) hide show
  1. package/bin/cli.mjs +324 -0
  2. package/package.json +34 -0
  3. package/template/.agent/instructions/commands.md +48 -0
  4. package/template/.agent/instructions/patterns.md +61 -0
  5. package/template/.agent/instructions/structure.md +29 -0
  6. package/template/.agent/instructions/tech-stack.md +43 -0
  7. package/template/.agent/instructions/workflow.md +41 -0
  8. package/template/.agent/kit-sync.md +15 -0
  9. package/template/.agent/rules/boundary-not-placeholder.md +146 -0
  10. package/template/.agent/rules/completion-checklist.md +48 -0
  11. package/template/.agent/rules/decision-classification.md +103 -0
  12. package/template/.agent/rules/extensibility.md +47 -0
  13. package/template/.agent/rules/question-vs-command.md +81 -0
  14. package/template/.agent/rules/security-first.md +43 -0
  15. package/template/.agent/rules/specificity-standards.md +54 -0
  16. package/template/.agent/rules/tdd-contract-first.md +57 -0
  17. package/template/.agent/rules/vertical-slices.md +42 -0
  18. package/template/.agent/skill-library/MANIFEST.md +480 -0
  19. package/template/.agent/skill-library/README.md +38 -0
  20. package/template/.agent/skill-library/meta/brand-guidelines/SKILL.md +73 -0
  21. package/template/.agent/skill-library/meta/claude-code/README.md +9 -0
  22. package/template/.agent/skill-library/meta/claude-code/agent-development/SKILL.md +415 -0
  23. package/template/.agent/skill-library/meta/claude-code/hook-development/SKILL.md +712 -0
  24. package/template/.agent/skill-library/meta/claude-code/plugin-structure/SKILL.md +476 -0
  25. package/template/.agent/skill-library/meta/git-advanced/SKILL.md +972 -0
  26. package/template/.agent/skill-library/meta/mcp-builder/SKILL.md +236 -0
  27. package/template/.agent/skill-library/meta/product-marketing-context/SKILL.md +241 -0
  28. package/template/.agent/skill-library/meta/regex-patterns/SKILL.md +751 -0
  29. package/template/.agent/skill-library/meta/tmux-processes/SKILL.md +210 -0
  30. package/template/.agent/skill-library/meta/using-tmux-for-interactive-commands/SKILL.md +178 -0
  31. package/template/.agent/skill-library/stack/3d/threejs-pro/SKILL.md +300 -0
  32. package/template/.agent/skill-library/stack/ai/ai-sdk/SKILL.md +77 -0
  33. package/template/.agent/skill-library/stack/ai/langchain/SKILL.md +530 -0
  34. package/template/.agent/skill-library/stack/ai/ollama/SKILL.md +321 -0
  35. package/template/.agent/skill-library/stack/ai/openai-sdk/SKILL.md +549 -0
  36. package/template/.agent/skill-library/stack/analytics/google-analytics/SKILL.md +153 -0
  37. package/template/.agent/skill-library/stack/api/graphql/SKILL.md +1061 -0
  38. package/template/.agent/skill-library/stack/api/trpc/SKILL.md +576 -0
  39. package/template/.agent/skill-library/stack/auth/authjs/SKILL.md +569 -0
  40. package/template/.agent/skill-library/stack/auth/clerk/SKILL.md +590 -0
  41. package/template/.agent/skill-library/stack/auth/firebase-auth/SKILL.md +734 -0
  42. package/template/.agent/skill-library/stack/cms/payload-cms/SKILL.md +573 -0
  43. package/template/.agent/skill-library/stack/cms/shopify/SKILL.md +1193 -0
  44. package/template/.agent/skill-library/stack/cms/wordpress/SKILL.md +1104 -0
  45. package/template/.agent/skill-library/stack/css/sass-scss/SKILL.md +1121 -0
  46. package/template/.agent/skill-library/stack/css/tailwind-css-patterns/SKILL.md +863 -0
  47. package/template/.agent/skill-library/stack/css/tailwind-design-system/SKILL.md +490 -0
  48. package/template/.agent/skill-library/stack/css/vanilla-css/SKILL.md +1078 -0
  49. package/template/.agent/skill-library/stack/databases/clickhouse/SKILL.md +311 -0
  50. package/template/.agent/skill-library/stack/databases/influxdb/SKILL.md +280 -0
  51. package/template/.agent/skill-library/stack/databases/lancedb/SKILL.md +415 -0
  52. package/template/.agent/skill-library/stack/databases/mongodb/SKILL.md +1169 -0
  53. package/template/.agent/skill-library/stack/databases/neo4j/SKILL.md +839 -0
  54. package/template/.agent/skill-library/stack/databases/pgvector/SKILL.md +241 -0
  55. package/template/.agent/skill-library/stack/databases/pinecone/SKILL.md +212 -0
  56. package/template/.agent/skill-library/stack/databases/postgresql/SKILL.md +658 -0
  57. package/template/.agent/skill-library/stack/databases/qdrant/SKILL.md +312 -0
  58. package/template/.agent/skill-library/stack/databases/redis/SKILL.md +1079 -0
  59. package/template/.agent/skill-library/stack/databases/spacetimedb/SKILL.md +532 -0
  60. package/template/.agent/skill-library/stack/databases/sqlite/SKILL.md +1132 -0
  61. package/template/.agent/skill-library/stack/databases/supabase/SKILL.md +640 -0
  62. package/template/.agent/skill-library/stack/databases/surrealdb-expert/SKILL.md +945 -0
  63. package/template/.agent/skill-library/stack/databases/timescaledb/SKILL.md +745 -0
  64. package/template/.agent/skill-library/stack/databases/weaviate/SKILL.md +218 -0
  65. package/template/.agent/skill-library/stack/devops/github-actions/SKILL.md +554 -0
  66. package/template/.agent/skill-library/stack/devops/kubernetes/SKILL.md +950 -0
  67. package/template/.agent/skill-library/stack/devops/nginx/SKILL.md +841 -0
  68. package/template/.agent/skill-library/stack/devops/terraform/SKILL.md +860 -0
  69. package/template/.agent/skill-library/stack/email/resend/SKILL.md +391 -0
  70. package/template/.agent/skill-library/stack/engines/godot/SKILL.md +488 -0
  71. package/template/.agent/skill-library/stack/extensions/chrome-extension/SKILL.md +375 -0
  72. package/template/.agent/skill-library/stack/extensions/vscode-extension/SKILL.md +453 -0
  73. package/template/.agent/skill-library/stack/frameworks/astro-framework/SKILL.md +162 -0
  74. package/template/.agent/skill-library/stack/frameworks/electron/SKILL.md +1286 -0
  75. package/template/.agent/skill-library/stack/frameworks/fastapi/SKILL.md +650 -0
  76. package/template/.agent/skill-library/stack/frameworks/hono/SKILL.md +90 -0
  77. package/template/.agent/skill-library/stack/frameworks/nestjs/SKILL.md +878 -0
  78. package/template/.agent/skill-library/stack/frameworks/nextjs/SKILL.md +635 -0
  79. package/template/.agent/skill-library/stack/frameworks/nuxt/SKILL.md +564 -0
  80. package/template/.agent/skill-library/stack/frameworks/sveltekit/SKILL.md +614 -0
  81. package/template/.agent/skill-library/stack/frameworks/tauri/SKILL.md +920 -0
  82. package/template/.agent/skill-library/stack/gamedev/godot/SKILL.md +1032 -0
  83. package/template/.agent/skill-library/stack/gamedev/unity/SKILL.md +1175 -0
  84. package/template/.agent/skill-library/stack/hosting/aws/SKILL.md +467 -0
  85. package/template/.agent/skill-library/stack/hosting/cloudflare/SKILL.md +201 -0
  86. package/template/.agent/skill-library/stack/hosting/docker-expert/SKILL.md +409 -0
  87. package/template/.agent/skill-library/stack/hosting/vercel/SKILL.md +484 -0
  88. package/template/.agent/skill-library/stack/languages/bash-scripting/SKILL.md +773 -0
  89. package/template/.agent/skill-library/stack/languages/c-cpp/SKILL.md +712 -0
  90. package/template/.agent/skill-library/stack/languages/gdscript/SKILL.md +789 -0
  91. package/template/.agent/skill-library/stack/languages/go/SKILL.md +664 -0
  92. package/template/.agent/skill-library/stack/languages/java/SKILL.md +778 -0
  93. package/template/.agent/skill-library/stack/languages/kotlin/SKILL.md +665 -0
  94. package/template/.agent/skill-library/stack/languages/python/SKILL.md +678 -0
  95. package/template/.agent/skill-library/stack/languages/rust/SKILL.md +673 -0
  96. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/SKILL.md +141 -0
  97. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/advanced-generics.md +90 -0
  98. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/branded-types.md +57 -0
  99. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/builder-pattern.md +71 -0
  100. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/common-pitfalls.md +135 -0
  101. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/conditional-types.md +27 -0
  102. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/decorators.md +98 -0
  103. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/discriminated-unions.md +62 -0
  104. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/mapped-types.md +53 -0
  105. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/performance-best-practices.md +104 -0
  106. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/template-literal-types.md +49 -0
  107. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/testing-types.md +112 -0
  108. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/type-guards.md +70 -0
  109. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/type-inference.md +101 -0
  110. package/template/.agent/skill-library/stack/languages/typescript-advanced-patterns/references/utility-types.md +98 -0
  111. package/template/.agent/skill-library/stack/languages/vanilla-javascript/SKILL.md +803 -0
  112. package/template/.agent/skill-library/stack/messaging/kafka/SKILL.md +235 -0
  113. package/template/.agent/skill-library/stack/mobile/expo-react-native/SKILL.md +665 -0
  114. package/template/.agent/skill-library/stack/mobile/flutter/SKILL.md +316 -0
  115. package/template/.agent/skill-library/stack/mobile/react-native/SKILL.md +337 -0
  116. package/template/.agent/skill-library/stack/monitoring/posthog/SKILL.md +396 -0
  117. package/template/.agent/skill-library/stack/monitoring/sentry/SKILL.md +509 -0
  118. package/template/.agent/skill-library/stack/observability/datadog/SKILL.md +179 -0
  119. package/template/.agent/skill-library/stack/observability/distributed-tracing/SKILL.md +140 -0
  120. package/template/.agent/skill-library/stack/observability/logging-best-practices/SKILL.md +168 -0
  121. package/template/.agent/skill-library/stack/observability/opentelemetry/SKILL.md +164 -0
  122. package/template/.agent/skill-library/stack/observability/prometheus-grafana/SKILL.md +246 -0
  123. package/template/.agent/skill-library/stack/observability/python-observability/SKILL.md +158 -0
  124. package/template/.agent/skill-library/stack/orm/drizzle-orm/SKILL.md +613 -0
  125. package/template/.agent/skill-library/stack/orm/prisma/SKILL.md +744 -0
  126. package/template/.agent/skill-library/stack/payments/lemonsqueezy/SKILL.md +393 -0
  127. package/template/.agent/skill-library/stack/payments/stripe-integration/SKILL.md +457 -0
  128. package/template/.agent/skill-library/stack/queue/bullmq/SKILL.md +385 -0
  129. package/template/.agent/skill-library/stack/queue/inngest/SKILL.md +438 -0
  130. package/template/.agent/skill-library/stack/realtime/socketio/SKILL.md +595 -0
  131. package/template/.agent/skill-library/stack/search/elasticsearch/SKILL.md +248 -0
  132. package/template/.agent/skill-library/stack/search/meilisearch/SKILL.md +385 -0
  133. package/template/.agent/skill-library/stack/security/crypto-patterns/SKILL.md +437 -0
  134. package/template/.agent/skill-library/stack/security/csp-cors-headers/SKILL.md +588 -0
  135. package/template/.agent/skill-library/stack/security/dependency-auditing/SKILL.md +560 -0
  136. package/template/.agent/skill-library/stack/security/input-sanitization/SKILL.md +430 -0
  137. package/template/.agent/skill-library/stack/security/owasp-web-security/SKILL.md +421 -0
  138. package/template/.agent/skill-library/stack/state/tanstack-query/SKILL.md +637 -0
  139. package/template/.agent/skill-library/stack/state/zustand/SKILL.md +483 -0
  140. package/template/.agent/skill-library/stack/storage/aws-s3/SKILL.md +415 -0
  141. package/template/.agent/skill-library/stack/testing/playwright/SKILL.md +641 -0
  142. package/template/.agent/skill-library/stack/testing/storybook/SKILL.md +923 -0
  143. package/template/.agent/skill-library/stack/testing/testing-library/SKILL.md +872 -0
  144. package/template/.agent/skill-library/stack/testing/vitest/SKILL.md +714 -0
  145. package/template/.agent/skill-library/stack/ui/react-best-practices/SKILL.md +877 -0
  146. package/template/.agent/skill-library/stack/ui/react-composition-patterns/SKILL.md +1107 -0
  147. package/template/.agent/skill-library/stack/ui/react-flow/SKILL.md +425 -0
  148. package/template/.agent/skill-library/stack/ui/shadcn-ui/SKILL.md +703 -0
  149. package/template/.agent/skill-library/surface/api/api-caching/SKILL.md +458 -0
  150. package/template/.agent/skill-library/surface/api/api-documentation-openapi/SKILL.md +697 -0
  151. package/template/.agent/skill-library/surface/api/api-error-handling/SKILL.md +478 -0
  152. package/template/.agent/skill-library/surface/api/api-security-checklist/SKILL.md +147 -0
  153. package/template/.agent/skill-library/surface/api/api-versioning/SKILL.md +420 -0
  154. package/template/.agent/skill-library/surface/api/email-best-practices/SKILL.md +59 -0
  155. package/template/.agent/skill-library/surface/api/rate-limiting-abuse-protection/SKILL.md +147 -0
  156. package/template/.agent/skill-library/surface/api/rest-api-design/SKILL.md +478 -0
  157. package/template/.agent/skill-library/surface/api/webhook-design/SKILL.md +752 -0
  158. package/template/.agent/skill-library/surface/cli/cli-configuration-management/SKILL.md +445 -0
  159. package/template/.agent/skill-library/surface/cli/cli-error-diagnostics/SKILL.md +515 -0
  160. package/template/.agent/skill-library/surface/cli/cli-shell-integration/SKILL.md +479 -0
  161. package/template/.agent/skill-library/surface/cli/cli-ux-design/SKILL.md +477 -0
  162. package/template/.agent/skill-library/surface/desktop/desktop-app-distribution/SKILL.md +416 -0
  163. package/template/.agent/skill-library/surface/desktop/desktop-security-sandboxing/SKILL.md +407 -0
  164. package/template/.agent/skill-library/surface/desktop/desktop-ux-conventions/SKILL.md +361 -0
  165. package/template/.agent/skill-library/surface/desktop/native-os-integration/SKILL.md +563 -0
  166. package/template/.agent/skill-library/surface/extension/browser-extension-patterns/SKILL.md +482 -0
  167. package/template/.agent/skill-library/surface/extension/plugin-architecture-design/SKILL.md +632 -0
  168. package/template/.agent/skill-library/surface/extension/vscode-extension-development/SKILL.md +728 -0
  169. package/template/.agent/skill-library/surface/mobile/app-store-submission/SKILL.md +304 -0
  170. package/template/.agent/skill-library/surface/mobile/mobile-offline-sync/SKILL.md +443 -0
  171. package/template/.agent/skill-library/surface/mobile/mobile-responsive-patterns/SKILL.md +432 -0
  172. package/template/.agent/skill-library/surface/mobile/push-notifications/SKILL.md +495 -0
  173. package/template/.agent/skill-library/surface/web/accessibility-compliance/SKILL.md +827 -0
  174. package/template/.agent/skill-library/surface/web/ai-seo/SKILL.md +398 -0
  175. package/template/.agent/skill-library/surface/web/ai-seo/references/content-patterns.md +285 -0
  176. package/template/.agent/skill-library/surface/web/ai-seo/references/platform-ranking-factors.md +152 -0
  177. package/template/.agent/skill-library/surface/web/analytics-tracking/SKILL.md +309 -0
  178. package/template/.agent/skill-library/surface/web/analytics-tracking/references/event-library.md +260 -0
  179. package/template/.agent/skill-library/surface/web/analytics-tracking/references/ga4-implementation.md +300 -0
  180. package/template/.agent/skill-library/surface/web/analytics-tracking/references/gtm-implementation.md +390 -0
  181. package/template/.agent/skill-library/surface/web/authentication-ui-flows/SKILL.md +530 -0
  182. package/template/.agent/skill-library/surface/web/dark-mode-theming/SKILL.md +516 -0
  183. package/template/.agent/skill-library/surface/web/design-reference-data/SKILL.md +105 -0
  184. package/template/.agent/skill-library/surface/web/design-reference-data/data/charts.csv +26 -0
  185. package/template/.agent/skill-library/surface/web/design-reference-data/data/colors.csv +97 -0
  186. package/template/.agent/skill-library/surface/web/design-reference-data/data/landing.csv +31 -0
  187. package/template/.agent/skill-library/surface/web/design-reference-data/data/styles.csv +59 -0
  188. package/template/.agent/skill-library/surface/web/design-reference-data/data/typography.csv +58 -0
  189. package/template/.agent/skill-library/surface/web/design-reference-data/data/ux-guidelines.csv +100 -0
  190. package/template/.agent/skill-library/surface/web/design-reference-data/scripts/core.py +258 -0
  191. package/template/.agent/skill-library/surface/web/design-reference-data/scripts/design_system.py +1067 -0
  192. package/template/.agent/skill-library/surface/web/design-reference-data/scripts/search.py +106 -0
  193. package/template/.agent/skill-library/surface/web/form-handling-validation/SKILL.md +675 -0
  194. package/template/.agent/skill-library/surface/web/frontend-design/SKILL.md +1393 -0
  195. package/template/.agent/skill-library/surface/web/frontend-design/templates/cppn-hero.tsx +299 -0
  196. package/template/.agent/skill-library/surface/web/frontend-design/templates/wave-hero.tsx +875 -0
  197. package/template/.agent/skill-library/surface/web/frontend-verification/SKILL.md +111 -0
  198. package/template/.agent/skill-library/surface/web/frontend-verification/scripts/ux_audit.py +739 -0
  199. package/template/.agent/skill-library/surface/web/i18n-localization/SKILL.md +154 -0
  200. package/template/.agent/skill-library/surface/web/offline-first-pwa/SKILL.md +657 -0
  201. package/template/.agent/skill-library/surface/web/page-cro/SKILL.md +182 -0
  202. package/template/.agent/skill-library/surface/web/page-cro/references/experiments.md +248 -0
  203. package/template/.agent/skill-library/surface/web/programmatic-seo/SKILL.md +238 -0
  204. package/template/.agent/skill-library/surface/web/programmatic-seo/references/playbooks.md +308 -0
  205. package/template/.agent/skill-library/surface/web/schema-markup/SKILL.md +179 -0
  206. package/template/.agent/skill-library/surface/web/schema-markup/references/schema-examples.md +398 -0
  207. package/template/.agent/skill-library/surface/web/seo-audit/SKILL.md +394 -0
  208. package/template/.agent/skill-library/surface/web/seo-audit/references/ai-writing-detection.md +200 -0
  209. package/template/.agent/skill-library/surface/web/web-performance-optimization/SKILL.md +646 -0
  210. package/template/.agent/skill-library/surface/web/web-scraping/SKILL.md +58 -0
  211. package/template/.agent/skills/accessibility/SKILL.md +522 -0
  212. package/template/.agent/skills/accessibility/references/WCAG.md +162 -0
  213. package/template/.agent/skills/adversarial-review/SKILL.md +90 -0
  214. package/template/.agent/skills/antigravity-workflows/SKILL.md +81 -0
  215. package/template/.agent/skills/antigravity-workflows/resources/implementation-playbook.md +36 -0
  216. package/template/.agent/skills/api-design-principles/SKILL.md +37 -0
  217. package/template/.agent/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  218. package/template/.agent/skills/api-design-principles/assets/rest-api-template.py +182 -0
  219. package/template/.agent/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  220. package/template/.agent/skills/api-design-principles/references/rest-best-practices.md +408 -0
  221. package/template/.agent/skills/api-design-principles/resources/implementation-playbook.md +513 -0
  222. package/template/.agent/skills/api-versioning/SKILL.md +420 -0
  223. package/template/.agent/skills/architecture-mapping/SKILL.md +219 -0
  224. package/template/.agent/skills/bootstrap-agents/SKILL.md +259 -0
  225. package/template/.agent/skills/brainstorming/SKILL.md +236 -0
  226. package/template/.agent/skills/brand-guidelines/SKILL.md +44 -0
  227. package/template/.agent/skills/clean-code/SKILL.md +94 -0
  228. package/template/.agent/skills/code-review-pro/SKILL.md +152 -0
  229. package/template/.agent/skills/concise-planning/SKILL.md +68 -0
  230. package/template/.agent/skills/cross-layer-consistency/SKILL.md +117 -0
  231. package/template/.agent/skills/database-schema-design/SKILL.md +429 -0
  232. package/template/.agent/skills/deployment-procedures/SKILL.md +241 -0
  233. package/template/.agent/skills/design-anti-cliche/SKILL.md +159 -0
  234. package/template/.agent/skills/design-direction/SKILL.md +45 -0
  235. package/template/.agent/skills/error-handling-patterns/SKILL.md +721 -0
  236. package/template/.agent/skills/find-skills/SKILL.md +145 -0
  237. package/template/.agent/skills/git-advanced/SKILL.md +972 -0
  238. package/template/.agent/skills/git-workflow/SKILL.md +420 -0
  239. package/template/.agent/skills/idea-extraction/SKILL.md +271 -0
  240. package/template/.agent/skills/logging-best-practices/SKILL.md +851 -0
  241. package/template/.agent/skills/migration-management/SKILL.md +384 -0
  242. package/template/.agent/skills/minimalist-surgical-development/SKILL.md +69 -0
  243. package/template/.agent/skills/parallel-agents/SKILL.md +165 -0
  244. package/template/.agent/skills/parallel-debugging/SKILL.md +135 -0
  245. package/template/.agent/skills/parallel-feature-development/SKILL.md +166 -0
  246. package/template/.agent/skills/performance-budgeting/SKILL.md +144 -0
  247. package/template/.agent/skills/pipeline-rubrics/SKILL.md +51 -0
  248. package/template/.agent/skills/pipeline-rubrics/references/architecture-rubric.md +19 -0
  249. package/template/.agent/skills/pipeline-rubrics/references/be-rubric.md +21 -0
  250. package/template/.agent/skills/pipeline-rubrics/references/fe-rubric.md +20 -0
  251. package/template/.agent/skills/pipeline-rubrics/references/ia-rubric.md +19 -0
  252. package/template/.agent/skills/pipeline-rubrics/references/scoring.md +28 -0
  253. package/template/.agent/skills/pipeline-rubrics/references/vision-rubric.md +11 -0
  254. package/template/.agent/skills/prd-templates/SKILL.md +88 -0
  255. package/template/.agent/skills/prd-templates/references/architecture-design-template.md +88 -0
  256. package/template/.agent/skills/prd-templates/references/be-spec-template.md +101 -0
  257. package/template/.agent/skills/prd-templates/references/data-placement-template.md +74 -0
  258. package/template/.agent/skills/prd-templates/references/decomposition-templates.md +211 -0
  259. package/template/.agent/skills/prd-templates/references/design-system-decisions.md +198 -0
  260. package/template/.agent/skills/prd-templates/references/engineering-standards-template.md +124 -0
  261. package/template/.agent/skills/prd-templates/references/fe-classification-procedures.md +47 -0
  262. package/template/.agent/skills/prd-templates/references/fe-spec-template.md +84 -0
  263. package/template/.agent/skills/prd-templates/references/infrastructure-report-template.md +71 -0
  264. package/template/.agent/skills/prd-templates/references/operational-templates.md +116 -0
  265. package/template/.agent/skills/prd-templates/references/placeholder-guard-template.md +21 -0
  266. package/template/.agent/skills/prd-templates/references/surface-model.md +61 -0
  267. package/template/.agent/skills/prd-templates/references/vision-template.md +66 -0
  268. package/template/.agent/skills/prompt-engineer/README.md +659 -0
  269. package/template/.agent/skills/prompt-engineer/SKILL.md +249 -0
  270. package/template/.agent/skills/regex-patterns/SKILL.md +751 -0
  271. package/template/.agent/skills/resolve-ambiguity/SKILL.md +278 -0
  272. package/template/.agent/skills/rest-api-design/SKILL.md +478 -0
  273. package/template/.agent/skills/security-scanning-security-hardening/SKILL.md +231 -0
  274. package/template/.agent/skills/session-continuity/SKILL.md +730 -0
  275. package/template/.agent/skills/session-continuity/protocols/01-session-resumption.md +38 -0
  276. package/template/.agent/skills/session-continuity/protocols/02-progress-generation.md +85 -0
  277. package/template/.agent/skills/session-continuity/protocols/03-progress-update.md +70 -0
  278. package/template/.agent/skills/session-continuity/protocols/04-pattern-extraction.md +60 -0
  279. package/template/.agent/skills/session-continuity/protocols/05-session-close.md +37 -0
  280. package/template/.agent/skills/session-continuity/protocols/06-decision-analysis.md +84 -0
  281. package/template/.agent/skills/session-continuity/protocols/07-spec-pipeline-generation.md +48 -0
  282. package/template/.agent/skills/session-continuity/protocols/08-spec-pipeline-update.md +43 -0
  283. package/template/.agent/skills/session-continuity/protocols/09-parallel-claim.md +122 -0
  284. package/template/.agent/skills/session-continuity/protocols/10-placeholder-verification-gate.md +104 -0
  285. package/template/.agent/skills/session-continuity/protocols/ambiguity-gates.md +48 -0
  286. package/template/.agent/skills/skill-creator/LICENSE.txt +202 -0
  287. package/template/.agent/skills/skill-creator/README.md +270 -0
  288. package/template/.agent/skills/skill-creator/SKILL.md +590 -0
  289. package/template/.agent/skills/skill-creator/references/output-patterns.md +82 -0
  290. package/template/.agent/skills/skill-creator/references/workflows.md +28 -0
  291. package/template/.agent/skills/skill-creator/scripts/init_skill.py +303 -0
  292. package/template/.agent/skills/skill-creator/scripts/package_skill.py +110 -0
  293. package/template/.agent/skills/skill-creator/scripts/quick_validate.py +95 -0
  294. package/template/.agent/skills/spec-writing/SKILL.md +110 -0
  295. package/template/.agent/skills/systematic-debugging/CREATION-LOG.md +119 -0
  296. package/template/.agent/skills/systematic-debugging/SKILL.md +297 -0
  297. package/template/.agent/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
  298. package/template/.agent/skills/systematic-debugging/condition-based-waiting.md +115 -0
  299. package/template/.agent/skills/systematic-debugging/defense-in-depth.md +122 -0
  300. package/template/.agent/skills/systematic-debugging/find-polluter.sh +63 -0
  301. package/template/.agent/skills/systematic-debugging/root-cause-tracing.md +169 -0
  302. package/template/.agent/skills/systematic-debugging/test-academic.md +14 -0
  303. package/template/.agent/skills/systematic-debugging/test-pressure-1.md +58 -0
  304. package/template/.agent/skills/systematic-debugging/test-pressure-2.md +68 -0
  305. package/template/.agent/skills/systematic-debugging/test-pressure-3.md +69 -0
  306. package/template/.agent/skills/tdd-workflow/SKILL.md +409 -0
  307. package/template/.agent/skills/tech-stack-catalog/SKILL.md +49 -0
  308. package/template/.agent/skills/tech-stack-catalog/references/constraint-questions.md +21 -0
  309. package/template/.agent/skills/tech-stack-catalog/references/dev-tooling-decisions.md +37 -0
  310. package/template/.agent/skills/tech-stack-catalog/references/surface-decision-tables.md +69 -0
  311. package/template/.agent/skills/technical-writer/SKILL.md +242 -0
  312. package/template/.agent/skills/testing-strategist/SKILL.md +932 -0
  313. package/template/.agent/skills/verification-before-completion/SKILL.md +145 -0
  314. package/template/.agent/skills/workflow-automation/SKILL.md +73 -0
  315. package/template/.agent/workflows/audit-ambiguity-execute.md +165 -0
  316. package/template/.agent/workflows/audit-ambiguity-rubrics.md +83 -0
  317. package/template/.agent/workflows/audit-ambiguity.md +64 -0
  318. package/template/.agent/workflows/bootstrap-agents-fill.md +201 -0
  319. package/template/.agent/workflows/bootstrap-agents-provision.md +197 -0
  320. package/template/.agent/workflows/bootstrap-agents.md +66 -0
  321. package/template/.agent/workflows/create-prd-architecture.md +119 -0
  322. package/template/.agent/workflows/create-prd-compile.md +138 -0
  323. package/template/.agent/workflows/create-prd-design-system.md +135 -0
  324. package/template/.agent/workflows/create-prd-security.md +113 -0
  325. package/template/.agent/workflows/create-prd-stack.md +91 -0
  326. package/template/.agent/workflows/create-prd.md +168 -0
  327. package/template/.agent/workflows/decompose-architecture-structure.md +82 -0
  328. package/template/.agent/workflows/decompose-architecture-validate.md +119 -0
  329. package/template/.agent/workflows/decompose-architecture.md +111 -0
  330. package/template/.agent/workflows/evolve-contract.md +98 -0
  331. package/template/.agent/workflows/evolve-feature-cascade.md +140 -0
  332. package/template/.agent/workflows/evolve-feature-classify.md +116 -0
  333. package/template/.agent/workflows/evolve-feature.md +56 -0
  334. package/template/.agent/workflows/ideate-discover.md +144 -0
  335. package/template/.agent/workflows/ideate-extract.md +129 -0
  336. package/template/.agent/workflows/ideate-validate.md +117 -0
  337. package/template/.agent/workflows/ideate.md +113 -0
  338. package/template/.agent/workflows/implement-slice-setup.md +113 -0
  339. package/template/.agent/workflows/implement-slice-tdd.md +198 -0
  340. package/template/.agent/workflows/implement-slice.md +50 -0
  341. package/template/.agent/workflows/plan-phase.md +202 -0
  342. package/template/.agent/workflows/propagate-decision-apply.md +135 -0
  343. package/template/.agent/workflows/propagate-decision-scan.md +147 -0
  344. package/template/.agent/workflows/propagate-decision.md +56 -0
  345. package/template/.agent/workflows/remediate-pipeline-assess.md +138 -0
  346. package/template/.agent/workflows/remediate-pipeline-execute.md +135 -0
  347. package/template/.agent/workflows/remediate-pipeline.md +55 -0
  348. package/template/.agent/workflows/resolve-ambiguity.md +82 -0
  349. package/template/.agent/workflows/sync-kit.md +209 -0
  350. package/template/.agent/workflows/update-architecture-map.md +74 -0
  351. package/template/.agent/workflows/validate-phase.md +219 -0
  352. package/template/.agent/workflows/verify-infrastructure.md +207 -0
  353. package/template/.agent/workflows/write-architecture-spec-deepen.md +139 -0
  354. package/template/.agent/workflows/write-architecture-spec-design.md +202 -0
  355. package/template/.agent/workflows/write-architecture-spec.md +63 -0
  356. package/template/.agent/workflows/write-be-spec-classify.md +165 -0
  357. package/template/.agent/workflows/write-be-spec-write.md +98 -0
  358. package/template/.agent/workflows/write-be-spec.md +76 -0
  359. package/template/.agent/workflows/write-fe-spec-classify.md +170 -0
  360. package/template/.agent/workflows/write-fe-spec-write.md +94 -0
  361. package/template/.agent/workflows/write-fe-spec.md +71 -0
  362. package/template/AGENTS.md +176 -0
  363. package/template/GEMINI.md +177 -0
  364. package/template/docs/README.md +187 -0
  365. package/template/docs/audits/.gitkeep +0 -0
  366. package/template/docs/audits/README.md +10 -0
  367. package/template/docs/plans/.gitkeep +0 -0
  368. package/template/docs/plans/README.md +21 -0
  369. package/template/docs/plans/be/.gitkeep +0 -0
  370. package/template/docs/plans/be/README.md +11 -0
  371. package/template/docs/plans/fe/.gitkeep +0 -0
  372. package/template/docs/plans/fe/README.md +11 -0
  373. package/template/docs/plans/ia/.gitkeep +0 -0
  374. package/template/docs/plans/ia/README.md +17 -0
  375. package/template/docs/plans/ia/deep-dives/.gitkeep +0 -0
  376. package/template/docs/plans/ia/deep-dives/README.md +5 -0
  377. package/template/docs/plans/phases/.gitkeep +0 -0
  378. package/template/docs/plans/phases/README.md +11 -0
@@ -0,0 +1,477 @@
1
+ ---
2
+ name: cli-ux-design
3
+ description: Terminal user experience patterns covering argument conventions, help text, colored output, progress indicators, interactive prompts, table formatting, exit codes, and subcommand design. Use when building command-line tools that need professional, user-friendly terminal interfaces.
4
+ version: 1.0.0
5
+ ---
6
+
7
+ # CLI UX Design
8
+
9
+ Build command-line tools with professional terminal UX that follows established conventions and degrades gracefully.
10
+
11
+ ## Argument and Flag Conventions
12
+
13
+ ### POSIX / GNU Standards
14
+
15
+ | Convention | Example | Rule |
16
+ |-----------|---------|------|
17
+ | Short flags | `-v`, `-f` | Single character, single dash |
18
+ | Long flags | `--verbose`, `--file` | Full word, double dash |
19
+ | Combined short flags | `-vf` (same as `-v -f`) | Only boolean flags combine |
20
+ | Flag with value | `-f output.txt` or `--file=output.txt` | Space or `=` separator |
21
+ | Positional arguments | `mycli build src/` | After all flags |
22
+ | `--` separator | `mycli -- -f` | Everything after `--` is positional |
23
+ | Standard flags | `--help`, `--version`, `--verbose`, `--quiet` | Always implement these |
24
+
25
+ ```typescript
26
+ // Node.js - Commander.js argument definitions
27
+ import { Command } from 'commander';
28
+
29
+ const program = new Command();
30
+
31
+ program
32
+ .name('deploy')
33
+ .description('Deploy application to production')
34
+ .version('1.2.0', '-V, --version', 'Display version number')
35
+ .argument('<environment>', 'Target environment (staging, production)')
36
+ .option('-f, --force', 'Skip confirmation prompts')
37
+ .option('-t, --tag <tag>', 'Deploy specific git tag')
38
+ .option('-r, --replicas <count>', 'Number of replicas', parseInt, 3)
39
+ .option('--no-cache', 'Build without cache')
40
+ .option('--dry-run', 'Show what would happen without executing')
41
+ .option('-v, --verbose', 'Enable verbose output')
42
+ .option('-q, --quiet', 'Suppress all output except errors')
43
+ .action(async (environment, options) => {
44
+ await deploy(environment, options);
45
+ });
46
+
47
+ program.parse();
48
+ ```
49
+
50
+ ```rust
51
+ // Rust - clap argument definitions
52
+ use clap::Parser;
53
+
54
+ #[derive(Parser)]
55
+ #[command(name = "deploy")]
56
+ #[command(about = "Deploy application to production")]
57
+ #[command(version)]
58
+ struct Cli {
59
+ /// Target environment (staging, production)
60
+ environment: String,
61
+
62
+ /// Skip confirmation prompts
63
+ #[arg(short, long)]
64
+ force: bool,
65
+
66
+ /// Deploy specific git tag
67
+ #[arg(short, long)]
68
+ tag: Option<String>,
69
+
70
+ /// Number of replicas
71
+ #[arg(short, long, default_value_t = 3)]
72
+ replicas: u32,
73
+
74
+ /// Build without cache
75
+ #[arg(long)]
76
+ no_cache: bool,
77
+
78
+ /// Show what would happen without executing
79
+ #[arg(long)]
80
+ dry_run: bool,
81
+
82
+ /// Enable verbose output
83
+ #[arg(short, long)]
84
+ verbose: bool,
85
+
86
+ /// Suppress all output except errors
87
+ #[arg(short, long)]
88
+ quiet: bool,
89
+ }
90
+ ```
91
+
92
+ **Rule**: Every CLI must support `--help` and `--version`. These are non-negotiable.
93
+ **Anti-pattern**: Flags that require values but accept no space separator (`-foutput.txt`). Always support both `-f output.txt` and `--file=output.txt`.
94
+
95
+ ## Help Text Formatting
96
+
97
+ Follow the `man` page convention: NAME, SYNOPSIS, DESCRIPTION, OPTIONS, EXAMPLES, EXIT STATUS.
98
+
99
+ ```
100
+ USAGE:
101
+ deploy <environment> [options]
102
+
103
+ ARGUMENTS:
104
+ environment Target environment (staging, production)
105
+
106
+ OPTIONS:
107
+ -f, --force Skip confirmation prompts
108
+ -t, --tag <tag> Deploy specific git tag
109
+ -r, --replicas <count> Number of replicas (default: 3)
110
+ --no-cache Build without cache
111
+ --dry-run Show what would happen without executing
112
+ -v, --verbose Enable verbose output
113
+ -q, --quiet Suppress all output except errors
114
+ -h, --help Show this help message
115
+ -V, --version Show version number
116
+
117
+ EXAMPLES:
118
+ deploy staging Deploy to staging with defaults
119
+ deploy production --tag v1.2.0 Deploy specific tag to production
120
+ deploy staging --dry-run --verbose Preview staging deployment
121
+
122
+ ENVIRONMENT VARIABLES:
123
+ DEPLOY_TOKEN Authentication token (required)
124
+ DEPLOY_REGION Target region (default: us-east-1)
125
+ ```
126
+
127
+ **Rule**: Align option descriptions vertically. Short flag, long flag, value placeholder, then description.
128
+ **Rule**: Include at least 2-3 real-world examples in `--help` output. Examples are the most-read part of help text.
129
+
130
+ ## Colored Output with NO_COLOR / TERM Support
131
+
132
+ ```typescript
133
+ import chalk from 'chalk';
134
+
135
+ // Respect NO_COLOR standard (https://no-color.org)
136
+ // chalk does this automatically, but verify for custom implementations
137
+ function supportsColor(): boolean {
138
+ if (process.env.NO_COLOR !== undefined) return false;
139
+ if (process.env.FORCE_COLOR !== undefined) return true;
140
+ if (!process.stdout.isTTY) return false;
141
+ if (process.env.TERM === 'dumb') return false;
142
+ return true;
143
+ }
144
+
145
+ // Semantic color usage
146
+ const log = {
147
+ success: (msg: string) => console.log(chalk.green(` ✓ ${msg}`)),
148
+ error: (msg: string) => console.error(chalk.red(` ✗ ${msg}`)),
149
+ warning: (msg: string) => console.error(chalk.yellow(` ⚠ ${msg}`)),
150
+ info: (msg: string) => console.log(chalk.blue(` ℹ ${msg}`)),
151
+ dim: (msg: string) => console.log(chalk.dim(` ${msg}`)),
152
+ heading: (msg: string) => console.log(chalk.bold(`\n${msg}`)),
153
+ };
154
+
155
+ // Usage
156
+ log.heading('Deploying to production');
157
+ log.info('Building from tag v1.2.0');
158
+ log.success('Build completed in 23s');
159
+ log.warning('Cache was stale, rebuilt from scratch');
160
+ log.error('Health check failed after 3 retries');
161
+ ```
162
+
163
+ **Rule**: Errors and warnings go to `stderr`. Success and info go to `stdout`. This allows `mycli 2>/dev/null` to show only results.
164
+ **Rule**: Never use color as the only indicator of meaning. Pair with symbols: checkmark for success, X for error, triangle for warning.
165
+
166
+ ## Progress Bars and Spinners
167
+
168
+ ```typescript
169
+ import ora from 'ora';
170
+ import cliProgress from 'cli-progress';
171
+
172
+ // Spinner for indeterminate operations
173
+ async function withSpinner<T>(label: string, fn: () => Promise<T>): Promise<T> {
174
+ const spinner = ora(label).start();
175
+
176
+ try {
177
+ const result = await fn();
178
+ spinner.succeed();
179
+ return result;
180
+ } catch (error) {
181
+ spinner.fail();
182
+ throw error;
183
+ }
184
+ }
185
+
186
+ // Usage
187
+ const config = await withSpinner('Loading configuration', loadConfig);
188
+ await withSpinner('Deploying to staging', () => deploy('staging'));
189
+
190
+ // Progress bar for determinate operations
191
+ function downloadWithProgress(url: string, total: number) {
192
+ const bar = new cliProgress.SingleBar({
193
+ format: ' Downloading |{bar}| {percentage}% | {value}/{total} MB',
194
+ barCompleteChar: '█',
195
+ barIncompleteChar: '░',
196
+ hideCursor: true,
197
+ });
198
+
199
+ bar.start(total, 0);
200
+
201
+ // Update during download
202
+ onProgress((downloaded) => bar.update(downloaded));
203
+ onComplete(() => bar.stop());
204
+ }
205
+ ```
206
+
207
+ **Rule**: Use spinners for operations with unknown duration. Use progress bars for operations with measurable progress.
208
+ **Anti-pattern**: Showing a spinner on a non-TTY. Check `process.stdout.isTTY` and fall back to simple log lines.
209
+
210
+ ## Interactive Prompts with Non-TTY Fallback
211
+
212
+ ```typescript
213
+ import inquirer from 'inquirer';
214
+
215
+ async function confirmDeployment(environment: string, options: DeployOptions): Promise<boolean> {
216
+ // Non-interactive mode: use --force flag
217
+ if (!process.stdin.isTTY || options.force) {
218
+ if (!options.force) {
219
+ console.error('Error: Confirmation required. Use --force to skip or run in an interactive terminal.');
220
+ process.exit(1);
221
+ }
222
+ return true;
223
+ }
224
+
225
+ const { confirmed } = await inquirer.prompt([
226
+ {
227
+ type: 'confirm',
228
+ name: 'confirmed',
229
+ message: `Deploy to ${environment}? This will affect live users.`,
230
+ default: false,
231
+ },
232
+ ]);
233
+
234
+ return confirmed;
235
+ }
236
+
237
+ // Select prompt with search
238
+ async function selectEnvironment(): Promise<string> {
239
+ if (!process.stdin.isTTY) {
240
+ console.error('Error: Environment selection requires an interactive terminal. Pass environment as argument.');
241
+ process.exit(1);
242
+ }
243
+
244
+ const { environment } = await inquirer.prompt([
245
+ {
246
+ type: 'list',
247
+ name: 'environment',
248
+ message: 'Select target environment:',
249
+ choices: [
250
+ { name: 'Development', value: 'dev' },
251
+ { name: 'Staging', value: 'staging' },
252
+ { name: 'Production (requires approval)', value: 'production' },
253
+ ],
254
+ },
255
+ ]);
256
+
257
+ return environment;
258
+ }
259
+ ```
260
+
261
+ **Rule**: Every interactive prompt must have a non-interactive equivalent (flag or argument). CI/CD pipelines do not have TTYs.
262
+
263
+ ## Table and List Formatting
264
+
265
+ ```typescript
266
+ import { table } from 'table';
267
+
268
+ // Simple aligned table
269
+ function printTable(headers: string[], rows: string[][]) {
270
+ const config = {
271
+ border: {
272
+ topBody: '─', topJoin: '┬', topLeft: '┌', topRight: '┐',
273
+ bottomBody: '─', bottomJoin: '┴', bottomLeft: '└', bottomRight: '┘',
274
+ bodyLeft: '│', bodyRight: '│', bodyJoin: '│',
275
+ joinBody: '─', joinLeft: '├', joinRight: '┤', joinJoin: '┼',
276
+ },
277
+ };
278
+
279
+ console.log(table([headers, ...rows], config));
280
+ }
281
+
282
+ // For machine consumption, output JSON
283
+ function printOutput(data: unknown[], format: 'table' | 'json' | 'csv') {
284
+ switch (format) {
285
+ case 'json':
286
+ console.log(JSON.stringify(data, null, 2));
287
+ break;
288
+ case 'csv':
289
+ console.log(toCsv(data));
290
+ break;
291
+ case 'table':
292
+ default:
293
+ printTable(Object.keys(data[0] as object), data.map((row) => Object.values(row as object).map(String)));
294
+ }
295
+ }
296
+ ```
297
+
298
+ ```
299
+ ┌─────────────┬──────────┬────────┬─────────┐
300
+ │ Environment │ Status │ Uptime │ Version │
301
+ ├─────────────┼──────────┼────────┼─────────┤
302
+ │ production │ healthy │ 14d │ v1.2.0 │
303
+ │ staging │ healthy │ 3d │ v1.3.0 │
304
+ │ development │ degraded │ 1h │ v1.3.1 │
305
+ └─────────────┴──────────┴────────┴─────────┘
306
+ ```
307
+
308
+ ## Paging Long Output
309
+
310
+ ```typescript
311
+ import { spawn } from 'child_process';
312
+
313
+ function pageOutput(content: string) {
314
+ if (!process.stdout.isTTY) {
315
+ // Not a terminal, just print
316
+ process.stdout.write(content);
317
+ return;
318
+ }
319
+
320
+ const pager = process.env.PAGER || 'less';
321
+ const pagerProcess = spawn(pager, ['-R'], { // -R for color passthrough
322
+ stdio: ['pipe', process.stdout, process.stderr],
323
+ });
324
+
325
+ pagerProcess.stdin.write(content);
326
+ pagerProcess.stdin.end();
327
+ }
328
+ ```
329
+
330
+ ## Exit Codes and Meanings
331
+
332
+ | Code | Meaning | When to Use |
333
+ |------|---------|-------------|
334
+ | 0 | Success | Operation completed without errors |
335
+ | 1 | General error | Catch-all for failures |
336
+ | 2 | Misuse of command | Invalid arguments, missing required flags |
337
+ | 64 | Usage error (EX_USAGE) | Incorrect usage syntax |
338
+ | 65 | Data error (EX_DATAERR) | Input data was incorrect |
339
+ | 69 | Unavailable (EX_UNAVAILABLE) | Service unavailable |
340
+ | 70 | Internal error (EX_SOFTWARE) | Unexpected internal error |
341
+ | 73 | Can't create (EX_CANTCREAT) | Cannot create output file |
342
+ | 77 | Permission denied (EX_NOPERM) | Insufficient permissions |
343
+ | 130 | Interrupted (SIGINT) | User pressed Ctrl+C |
344
+
345
+ ```typescript
346
+ // Define exit codes as constants
347
+ const EXIT = {
348
+ SUCCESS: 0,
349
+ ERROR: 1,
350
+ INVALID_ARGS: 2,
351
+ AUTH_FAILED: 77,
352
+ SERVICE_UNAVAILABLE: 69,
353
+ } as const;
354
+
355
+ // Use in main function
356
+ async function main() {
357
+ try {
358
+ const args = parseArgs(process.argv.slice(2));
359
+ if (!args) process.exit(EXIT.INVALID_ARGS);
360
+
361
+ await run(args);
362
+ process.exit(EXIT.SUCCESS);
363
+ } catch (error) {
364
+ if (error instanceof AuthError) process.exit(EXIT.AUTH_FAILED);
365
+ if (error instanceof NetworkError) process.exit(EXIT.SERVICE_UNAVAILABLE);
366
+ console.error(chalk.red(`Error: ${(error as Error).message}`));
367
+ process.exit(EXIT.ERROR);
368
+ }
369
+ }
370
+ ```
371
+
372
+ **Rule**: Exit code 0 means success. Any non-zero means failure. Scripts and CI depend on this.
373
+
374
+ ## stderr vs stdout Separation
375
+
376
+ | Stream | Content |
377
+ |--------|---------|
378
+ | `stdout` | Results, data, formatted output (piped to next command or file) |
379
+ | `stderr` | Errors, warnings, progress indicators, debug info (shown to user) |
380
+
381
+ ```typescript
382
+ // Correct separation
383
+ console.log(JSON.stringify(results)); // stdout: pipeable data
384
+ console.error('Processing complete'); // stderr: status message
385
+ console.error(`Processed ${count} items`); // stderr: progress info
386
+
387
+ // Example: mycli list --format json 2>/dev/null | jq '.name'
388
+ // stdout (JSON data) goes to jq, stderr (progress) goes to /dev/null
389
+ ```
390
+
391
+ ## Subcommand Patterns
392
+
393
+ ```
394
+ mycli <command> [subcommand] [options] [arguments]
395
+ ```
396
+
397
+ ```typescript
398
+ // Commander.js - Subcommand pattern
399
+ const program = new Command();
400
+
401
+ program
402
+ .name('mycli')
403
+ .description('My application CLI')
404
+ .version('1.0.0');
405
+
406
+ // mycli deploy <env>
407
+ program
408
+ .command('deploy')
409
+ .description('Deploy to an environment')
410
+ .argument('<environment>')
411
+ .option('--tag <tag>', 'Git tag to deploy')
412
+ .action(deploy);
413
+
414
+ // mycli config get <key>
415
+ const configCmd = program
416
+ .command('config')
417
+ .description('Manage configuration');
418
+
419
+ configCmd
420
+ .command('get')
421
+ .argument('<key>')
422
+ .description('Get a configuration value')
423
+ .action(configGet);
424
+
425
+ configCmd
426
+ .command('set')
427
+ .argument('<key>')
428
+ .argument('<value>')
429
+ .description('Set a configuration value')
430
+ .action(configSet);
431
+
432
+ configCmd
433
+ .command('list')
434
+ .description('List all configuration values')
435
+ .option('--format <format>', 'Output format', 'table')
436
+ .action(configList);
437
+ ```
438
+
439
+ ## Version Display Conventions
440
+
441
+ ```
442
+ $ mycli --version
443
+ mycli 1.2.0
444
+
445
+ $ mycli --version --verbose
446
+ mycli 1.2.0
447
+ Node.js: v20.11.0
448
+ OS: linux x64
449
+ Config: /home/user/.config/mycli/config.toml
450
+ ```
451
+
452
+ ## Popular CLI Libraries
453
+
454
+ | Language | Library | Strengths |
455
+ |----------|---------|-----------|
456
+ | Node.js | Commander.js | Simple, well-documented, widely used |
457
+ | Node.js | yargs | Rich feature set, middleware support |
458
+ | Node.js | Clipanion | Type-safe, used by Yarn |
459
+ | Deno | Cliffy | Native Deno support, inspired by Commander |
460
+ | Rust | clap | Derive macros, shell completions, fast |
461
+ | Go | cobra | Industry standard, used by kubectl, Hugo |
462
+ | Python | click | Decorator-based, composable |
463
+ | Python | typer | Type hints to CLI, built on click |
464
+
465
+ ## Output Checklist
466
+
467
+ - [ ] `--help` and `--version` flags implemented
468
+ - [ ] Arguments follow POSIX/GNU conventions
469
+ - [ ] Help text includes real-world examples
470
+ - [ ] Colors respect NO_COLOR and non-TTY environments
471
+ - [ ] Errors and progress go to stderr, data goes to stdout
472
+ - [ ] Spinners/progress bars degrade to log lines on non-TTY
473
+ - [ ] Interactive prompts have non-interactive equivalents
474
+ - [ ] Table output has JSON/CSV alternative (`--format` flag)
475
+ - [ ] Exit codes follow Unix conventions (0 = success)
476
+ - [ ] Long output is paged when running in a terminal
477
+ - [ ] Subcommands have individual help text