Learn how to build a developer-centric SAP HANA command line tool, particularly designed to be used when performing SAP HANA development in non-SAP tooling (for example from VS Code).
Instructions for SAP-samples/hana-developer-cli-tool-example, covering workspace copilot instructions, project context, general expectations, testing and validation and tooling preferences.
Use when creating or updating automation scripts in the scripts/ folder (generate-, enhance-, update-, populate- files). Enforces consistent patterns for file I/O, metadata extraction, documentation generation, template processing, error handling, and integration with npm scripts.
Use when creating or updating CHANGELOG.json entries. Enforces the repository's existing JSON schema, ordering, style, and compatibility with generated CHANGELOG.md output.
Use when creating or updating GitHub Actions workflow files. Enforces consistent CI/CD patterns, matrix testing strategies, artifact management, deployment automation, secret handling, and integration with repository services. Ensures workflows are secure, maintainable, and follow GitHub Actions best practices.
Use when creating or updating CLI command files in bin/. Enforces consistent structure, imports, exports, error handling, internationalization, and integration with the command infrastructure. Ensures commands work seamlessly with the yargs framework, prompt system, and database connections.
Use when creating or updating CLI command documentation in docs/02-commands/. Generates comprehensive markdown files with Mermaid diagrams showing command flow, detailed parameter tables organized by category, syntax examples, and related commands.
Use when creating or updating project configuration files for linting, testing, coverage, and code quality tools. Enforces consistent config structure, extends shared configurations, manages ignore patterns, handles multi-language setup, and integrates tools with CI/CD. Ensures all tools work harmoniously and follow…
Use when creating or updating code that manages database connections. Enforces consistent timeout configuration, proper connection cleanup, graceful error handling, and connection pooling best practices across CLI commands, routes, and tests.
Use when creating or updating database-specific client adapters. Enforces abstract base class extension patterns, required method implementations, connection lifecycle management, profile-based factory patterns, and integration with CDS and direct connection modes. Ensures consistent database abstraction across HANA…
Use when creating end-to-end (E2E) tests for CLI commands. Enforces consistent test structure, subprocess execution patterns, output validation, flag testing, and integration testing. Covers complete command workflows from execution through verification.
Use when creating or updating standard documentation pages outside docs/02-commands/. Enforces consistent structure, writing style, cross-linking, and VitePress-friendly markdown patterns already used in this repository.
Use when creating or updating GitHub Actions workflow files. Enforces consistent CI/CD patterns, matrix testing strategies, artifact management, deployment automation, secret handling, and integration with repository services. Ensures workflows are secure, maintainable, and follow GitHub Actions best practices.
Use when adding or updating text elements in i18n/ translation files. Enforces consistent key-value structure, language completeness, and multi-file synchronization across all supported language variants (English, German, Spanish, French, Japanese, Korean, Portuguese).
Use when creating or updating MCP (Model Context Protocol) server components. Enforces TypeScript patterns, JSON-RPC communication rules, tool/resource/prompt registration, and integration with CLI command metadata. Ensures MCP server follows protocol requirements and maintains consistency with the CLI infrastructure.
Comprehensive overview of the SAP HANA Developer CLI Tool project. Provides essential context about project purpose, architecture, technologies, operating modes, and design patterns. Use this as foundational knowledge for all work in this repository.
Use when preparing releases, updating CHANGELOG.json, bumping versions, or publishing to npm. Enforces consistent release process, version numbering conventions, changelog maintenance, and publishing workflow.
Use when creating or updating route files in routes/. Enforces consistent structure, error handling, database connection management, internationalization, and integration with the Express server and CLI command infrastructure. Ensures routes follow established patterns for endpoint registration, response formatting…
Use when creating or updating SAPUI5 user interfaces in app/resources/. Enforces consistent component structure, controller patterns, view conventions, model usage, internationalization, and integration with the common UI framework. Ensures new UIs follow established patterns for reusability, maintainability, and…
Use when creating or updating maintenance scripts in scripts/. Enforces patterns for validation, postinstall hooks, build utilities, CLI argument parsing, exit code conventions, CI/CD integration, and internationalized user feedback. Ensures scripts are robust, testable, and follow established conventions.
Use when creating or updating test files that need to leverage existing test utilities. Enforces consistent discovery and reuse of shared testing infrastructure including base utilities, mocking libraries, and established test patterns. Ensures tests benefit from centralized test helpers rather than duplicating…
Use when creating or updating test files for CLI commands, utilities, and routes. Enforces consistent test structure, Mocha patterns, proper assertion usage, execution isolation, error handling validation, and integration with the project's test infrastructure.
Use when adding user-facing text in CLI commands, API routes, or utilities. Enforces consistent use of bundle.getText() for all translatable strings, descriptive key naming, and multi-language synchronization across i18n/ property files.
Use when creating or updating TypeScript configuration files. Enforces consistent compiler options, module resolution strategies, type generation from JavaScript sources, declaration file management, and dual-config patterns for mixed JS/TS projects. Ensures TypeScript integration supports both ESM and type safety…