Skip to content

Commit 5d2ab6b

Browse files
authored
docs: overhaul documentation for skills-based architecture (#35)
* docs: overhaul documentation for skills-based architecture * Delete .gitignore * Update DEVELOPER.md * revert * Update ORACLEDB.md
1 parent f73c341 commit 5d2ab6b

3 files changed

Lines changed: 226 additions & 121 deletions

File tree

DEVELOPER.md

Lines changed: 15 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -10,85 +10,46 @@ Before you begin, ensure you have the following:
1010
1. **Gemini CLI:** Install the Gemini CLI version v0.6.0 or above. Installation
1111
instructions can be found on the official Gemini CLI documentation. You can
1212
verify your version by running `gemini --version`.
13-
2. **OracleDB Cluster & Instance:** For testing data plane tools, you will need access to an active
13+
2. **OracleDB Cluster & Instance:** For testing data plane tools, you will need access to an active
1414
Oracle DB instance. We recommend using Public IP to eliminate the need to create and use a workspace
15-
within the same VPC network as the database.
15+
within the same VPC network as the database.
1616

1717
## Developing the Extension
1818

1919
### Running from Local Source
2020

21-
The core logic for this extension is handled by a pre-built `toolbox` binary. The development process involves installing the extension locally into the Gemini CLI to test changes.
22-
2321
1. **Clone the Repository:**
2422

2523
```bash
2624
git clone https://github.com/gemini-cli-extensions/oracledb.git
2725
cd oracledb
2826
```
2927

30-
2. **Download the Toolbox Binary:** The required version of the `toolbox` binary
31-
is specified in `toolbox_version.txt`. Download it for your platform.
28+
2. **Install the Extension Locally:** Use the Gemini CLI to install the extension from your local directory.
3229

3330
```bash
34-
# Read the required version
35-
VERSION=$(cat toolbox_version.txt)
36-
37-
# Download the binary for your platform. The binary must be named `toolbox`.
38-
# Adjust the URL for your operating system (`linux/amd64`, `darwin/arm64`, `windows/amd64`).
39-
# Example for macOS/amd64:
40-
curl -L -o toolbox https://storage.googleapis.com/mcp-toolbox-for-databases/geminicli/v$VERSION/darwin/amd64/toolbox
41-
chmod +x toolbox
42-
43-
# For Windows, you will need to download the .exe file and rename it to `toolbox`.
44-
# The `chmod` command is not required on Windows.
31+
gemini extensions install .
4532
```
4633

47-
3. **Link the Extension Locally:** Use the Gemini CLI to install the
48-
extension from your local directory.
49-
50-
```bash
51-
gemini extensions link .
52-
```
53-
The CLI will prompt you to confirm the linking. Accept it to proceed.
34+
The CLI will prompt you to confirm the installation and enter your configuration.
5435

55-
4. **Testing Changes:** After linking, start the Gemini CLI (`gemini`).
56-
You can now interact with the `oracledb` tools to manually test your changes
57-
against your connected database.
36+
3. **Testing Changes:** After installation, start the Gemini CLI (`gemini`). You can now interact with the `oracledb` skills to manually test your changes against your connected database.
5837

5938
## Testing
6039

6140
### Automated Presubmit Checks
6241

63-
A GitHub Actions workflow (`.github/workflows/presubmit-tests.yml`) is triggered
64-
for every pull request. This workflow primarily verifies that the extension can
65-
be successfully installed by the Gemini CLI.
42+
A GitHub Actions workflow (`.github/workflows/presubmit-tests.yml`) is triggered for every pull request. This workflow primarily verifies that the extension can be successfully installed by the Gemini CLI.
6643

67-
Currently, there are no automated unit or integration test suites
68-
within this repository. All functional testing must be performed manually. All tools
69-
are currently tested in the [MCP Toolbox GitHub](https://github.com/googleapis/mcp-toolbox).
44+
All skills are currently tested in the [MCP Toolbox GitHub](https://github.com/googleapis/mcp-toolbox).
7045

71-
### Other GitHub Checks
72-
73-
* **License Header Check:** A workflow ensures all necessary files contain the
74-
proper license header.
75-
* **Conventional Commits:** This repository uses
76-
[Release Please](https://github.com/googleapis/release-please) to manage
77-
releases. Your commit messages must adhere to the
78-
[Conventional Commits](https://www.conventionalcommits.org/) specification.
79-
* **Dependency Updates:** [Renovate](https://github.com/apps/forking-renovate)
80-
is configured to automatically create pull requests for dependency updates.
81-
82-
## Building the Extension
46+
The skills themselves are validated using the `skills-validate.yml` workflow.
8347

84-
The "build" process for this extension involves packaging the extension's
85-
metadata files (`gemini-extension.json`, `ORACLEDB.md`, `LICENSE`) along with the
86-
pre-built `toolbox` binary into platform-specific archives (`.tar.gz` or `.zip`).
48+
### Other GitHub Checks
8749

88-
This process is handled automatically by the
89-
[`package-and-upload-assets.yml`](.github/workflows/package-and-upload-assets.yml)
90-
GitHub Actions workflow when a new release is created. Manual building is not
91-
required.
50+
- **License Header Check:** A workflow ensures all necessary files contain the proper license header.
51+
- **Conventional Commits:** This repository uses [Release Please](https://github.com/googleapis/release-please) to manage releases. Your commit messages must adhere to the [Conventional Commits](https://www.conventionalcommits.org/) specification.
52+
- **Dependency Updates:** [Renovate](https://github.com/apps/forking-renovate) is configured to automatically create pull requests for dependency updates.
9253

9354
## Maintainer Information
9455

@@ -97,8 +58,8 @@ required.
9758
The primary maintainers for this repository are defined in the
9859
[`.github/CODEOWNERS`](.github/CODEOWNERS) file:
9960

100-
* `@gemini-cli-extensions/senseai-eco`
101-
* `@gemini-cli-extensions/oracledb-maintainers`
61+
- `@gemini-cli-extensions/senseai-eco`
62+
- `@gemini-cli-extensions/oracledb-maintainers`
10263

10364
### Releasing
10465

@@ -120,7 +81,6 @@ The process is handled by the [`mirror-changelog.yml`](.github/workflows/mirror-
12081
3. **Filtering:** These release notes are filtered to include only changes
12182
relevant to this extension. The relevance is determined by a keyword (e.g.,
12283
`oracledb`), passed as an environment variable in the workflow file.
123-
`oracledb`), passed as an environment variable in the workflow file.
12484
4. **Changelog Injection:** The script formats the filtered entries as
12585
conventional commits and injects them into the PR body within a
12686
`BEGIN_COMMIT_OVERRIDE` block.
@@ -145,7 +105,3 @@ The process is handled by the [`mirror-changelog.yml`](.github/workflows/mirror-
145105
2. **Merge Release PR:** A maintainer approves and merges the Release PR. This
146106
action triggers `release-please` to create a new GitHub tag and a
147107
corresponding GitHub Release.
148-
3. **Package and Upload:** The new release triggers the
149-
`package-and-upload-assets.yml` workflow. This workflow builds the
150-
platform-specific extension archives and uploads them as assets to the
151-
GitHub Release.

ORACLEDB.md

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,26 @@
11
# Setup
2+
23
## Required Gemini CLI Version
4+
35
To install this extension, the Gemini CLI version must be v0.6.0 or above. The version can be found by running: `gemini --version`.
4-
gemini extensions install https://github.com/gemini-cli-extensions/oracledb
56

6-
## Oracle Database MCP Server (Data Plane: Connecting and Querying)
7-
This section covers connecting to a Oracle Database instance in different deployments and client configurations.
7+
## Oracle Database Agent Skills (Data Plane: Connecting and Querying)
8+
9+
This section covers connecting to an Oracle Database instance.
810

9-
### 1. Authentication
10-
Set the following environment variables before starting the Gemini CLI.
11+
1. **Extension Configuration**: This extension requires several settings (e.g., Connection String, Username, Password, and optionally Wallet Path and Use OCI). These values are gathered via prompts when you first install or link the extension:
1112

13+
* `ORACLE_CONNECTION_STRING`: The connection string for your Oracle Database (e.g., `host:port/service_name` or TNS alias).
1214
* `ORACLE_USERNAME`: Your Oracle database username.
1315
* `ORACLE_PASSWORD`: Your Oracle database password.
16+
* `ORACLE_WALLET`: (Optional) Path to the directory containing your Oracle Wallet files.
17+
* `ORACLE_USE_OCI`: (Optional) Set to `true` to use the OCI (thick client) driver.
1418

15-
### 2. Connection Method
16-
* `ORACLE_CONNECTION_STRING`: The connection string for your Oracle Database (e.g., `host:port/service_name` or TNS alias).
19+
If you need to update any of these values later, use the `gemini extensions config oracledb` command.
1720

18-
### 3. Optional Configuration
19-
* `ORACLE_WALLET`: Path to the directory containing your Oracle Wallet files.
20-
* `ORACLE_USE_OCI`: Set to `true` to use the OCI (thick client) driver.
21+
2. **Handle Missing Variables**: If a command fails with an error related to a missing configuration, it signifies a missing environment variable. Inform the user which variable is missing and instruct them to set it.
2122

22-
### 4. Troubleshooting
23-
* **Missing Variables**: If a command fails with an error related to a missing configuration, it signifies a missing environment variable. Please review the setup instructions and ensure the necessary variables are set.
24-
* **Permission Errors**: If you encounter permission errors, ensure the user has the required database-level permissions. `CREATE SESSION` is required for any user to connect. For monitoring and diagnostic tools, `SELECT` privileges on various `V$` (Dynamic Performance Views) and `DBA_` (Data Dictionary Views) are often necessary.
23+
3. **Handle Permission Errors**: If you encounter permission errors, ensure the user has the required database-level permissions. `CREATE SESSION` is required for any user to connect. For monitoring and diagnostic skills, `SELECT` privileges on various `V$` (Dynamic Performance Views) and `DBA_` (Data Dictionary Views) are often necessary.
2524

2625
## Oracle DB Permisions
2726
This section covers administrative operations like managing clusters, instances, and users.
@@ -40,14 +39,15 @@ This section covers administrative operations like managing clusters, instances,
4039

4140
# Usage Guidelines
4241
## Connecting to New Resources
43-
When you create a new Oracle DB instance, or database using the available tools, the connection is not automatically established. You will need to perform the following steps:
42+
When you create a new Oracle DB instance, or database using the available skills, the connection is not automatically established. You will need to perform the following steps:
4443

4544
1. **(Optional) Save your conversation:** To avoid losing your progress, save the current session by running the command: `/chat save <your-tag>`
4645
2. **Stop the CLI:** Terminate the Gemini CLI.
47-
3. **Update Environment Variables:** Set or update your environment variables (e.g. `ORACLE_CONNECTION_STRING`, `ORACLE_USERNAME`) to point to the new resource.
46+
3. **Update Extension Configuration:** Use the command `gemini extensions config oracledb` to update your settings (e.g. `ORACLE_CONNECTION_STRING`, `ORACLE_USERNAME`) to point to the new resource.
4847
4. **Restart:** Relaunch the Gemini CLI
4948
5. **(Optional) Resume conversation:** Resume your conversation with the command: `/chat resume <your-tag>`
5049

5150
**Important:** Do not assume a connection to a newly created resource is active. Always follow the steps above to reconfigure your connection.
52-
Instead of prompting the user for these values for specific tool calls, prompt the user to verify reuse of a specific value.
53-
Make sure to not use the environment variable names like `ORACLE_CONNECTION_STRING`, `${ORACLE_CONNECTION_STRING}`, or `$ORACLE_CONNECTION_STRING`. The value can be found by using command: `echo $ORACLE_USERNAME`.
51+
Instead of prompting the user for these values for specific skill calls, prompt the user to verify the reuse of a specific setting value.
52+
Make sure to not use the environment variable names like `ORACLE_CONNECTION_STRING`, `${ORACLE_CONNECTION_STRING}`, or `$ORACLE_CONNECTION_STRING`.
53+
The value can be verified by the user using the `gemini extensions config oracledb` command or by checking their local settings.

0 commit comments

Comments
 (0)