From 0fec38f5aabfb35215de2a8f03f73cb52ffa095a Mon Sep 17 00:00:00 2001 From: Sarav Date: Thu, 12 Nov 2026 10:29:10 +0530 Subject: [PATCH] =?UTF-8?q?feat:=20your=20skill=20and=20knowledge=20review?= =?UTF-8?q?=20requests=20in=20Codex=20=E2=80=94=20listed=20in=20/altimate-?= =?UTF-8?q?code:rules=20(1.3.0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - `/altimate-code:rules` also lists the person's skill and knowledge requests to the linked workspace (`workspace review status --json`): status, update, reviewer, reason, waiting over 14 days; replaced ones counted, not listed. Read-only: withdraw and remove happen in the web app, altimate-code's TUI or VS Code extension. Codex's default sandbox has no network: there it points to running the command in a terminal. - Session start already tells Codex of decisions on those requests (altimate-code); the README and changelog say so. - The resolver check counts the new block. Co-Authored-By: Claude Opus 5.5 --- plugins/altimate-code/.codex-plugin/plugin.json | 2 +- plugins/altimate-code/CHANGELOG.md | 6 ++++++ plugins/altimate-code/README.md | 3 ++- plugins/altimate-code/commands/rules.md | 16 +++++++++++++++- tests/resolve-cli.sh | 2 +- 5 files changed, 25 insertions(+), 4 deletions(-) diff --git a/plugins/altimate-code/.codex-plugin/plugin.json b/plugins/altimate-code/.codex-plugin/plugin.json index 4d941d0..5ad5015 100644 --- a/plugins/altimate-code/.codex-plugin/plugin.json +++ b/plugins/altimate-code/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "altimate-code", - "version": "1.2.0", + "version": "1.3.0", "description": "Delegates dbt and warehouse work to altimate-code, a specialized CLI agent with 100+ purpose-built data tools (SQL analysis, column-level lineage, dbt build/test/run, warehouse profiling, FinOps, connectivity to Snowflake, BigQuery, Redshift, Databricks, Postgres, MySQL, DuckDB).", "author": { "name": "Altimate AI", diff --git a/plugins/altimate-code/CHANGELOG.md b/plugins/altimate-code/CHANGELOG.md index 8a5b694..2b6bbe3 100644 --- a/plugins/altimate-code/CHANGELOG.md +++ b/plugins/altimate-code/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to the Altimate Code Codex plugin are recorded here. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.3.0] — 2026-11-12 + +### Added +- `/altimate-code:rules` also lists your skill and knowledge requests to the linked workspace: waiting, approved, rejected with the reviewer's reason, withdrawn or removed (replaced requests are counted, not listed). It is read-only: withdraw or remove in the Altimate web app, altimate-code's TUI or its VS Code extension. Codex's default sandbox has no network, so there the command points you to `altimate-code workspace review status` in a terminal. +- Session start tells Codex of decisions on your skill and knowledge requests since your last session, and how many still wait (from altimate-code, with no plugin change). + ## [1.2.0] — 2026-10-30 ### Added diff --git a/plugins/altimate-code/README.md b/plugins/altimate-code/README.md index 53ef349..19d876a 100644 --- a/plugins/altimate-code/README.md +++ b/plugins/altimate-code/README.md @@ -47,7 +47,8 @@ In a project linked to an Altimate workspace, the workspace's approved **team ru - **At session start** the plugin gives Codex the team rules for this repository, tells it how many proposed rules are waiting for you, and reports the owner's reviews of your proposals since your last session (approved, or rejected with the reason). - **When you correct Codex** ("no, we never use FLOAT for money") the correction is recorded locally. When you correct it on the same topic in two sessions, or correct a team rule it was given, altimate-code words a proposed rule after the turn, in the background. - **"Remember this as a team rule: …"**, said to Codex, waits as a proposal the same way. It needs "as a rule" or "team rule" followed by ":" or "-": "remember to run the tests", a question, or "don't remember this as a team rule" is just part of the conversation. A task handed to altimate-code decides this as an altimate-code session does. -- **`/altimate-code:rules`** shows the proposals waiting for you, the team rules, and the status of the rules you proposed. For each proposal you choose: send it to the workspace owner's review (or approve it, if you are the owner), edit the wording, save it as a memory, or "Not a rule". Nothing reaches teammates until the owner approves it. +- **`/altimate-code:rules`** shows the proposals waiting for you, the team rules, and the status of the rules you proposed. For each proposal you choose: send it to the workspace owner's review (or approve it, if you are the owner), edit the wording, save it as a memory, or "Not a rule". Nothing reaches teammates until the owner approves it. It also lists your skill and knowledge requests to the workspace (waiting, approved, rejected with the reason, or removed), read-only: withdrawing a request or removing an approved skill or knowledge base happens in the Altimate web app, altimate-code's TUI (`/rules`) or its VS Code extension. +- **Decisions on your skill and knowledge requests** since your last session are told to Codex at session start, with how many still wait. Rule drafting uses altimate-code's own model (sign in to the Altimate LLM Gateway, or set a provider in altimate-code): if it has none it can use, the next session start says the check failed. The same commands work in a terminal: `altimate learn proposals`, `altimate learn proposals reply --send` (`altimate` and `altimate-code` are two names for the same CLI; the hooks call `altimate-code learn hook`). Proposals from Codex sessions are answered only there or with `/altimate-code:rules`: altimate-code's own `/rules` and its VS Code chat panel don't list them. This needs an altimate-code release with workspace rules. diff --git a/plugins/altimate-code/commands/rules.md b/plugins/altimate-code/commands/rules.md index 88296dc..4d92a1b 100644 --- a/plugins/altimate-code/commands/rules.md +++ b/plugins/altimate-code/commands/rules.md @@ -1,5 +1,5 @@ --- -description: Review the team rules proposed from your corrections in a project linked to an Altimate workspace, and see the workspace's team rules and the review status of your proposals +description: Review the team rules proposed from your corrections in a project linked to an Altimate workspace, and see the workspace's team rules, the review status of your proposals, and your skill and knowledge requests --- The user invoked `/altimate-code:rules`. In a project linked to an Altimate workspace, altimate-code proposes a team rule when the user corrects the agent on the same topic in two sessions, corrects a team rule the session was given, or asks to remember something as a team rule. Those proposals wait here for the user's answer. Nothing reaches teammates until the workspace owner approves it. @@ -19,9 +19,23 @@ Workflow (follow in order): - An error saying `proposals` is an unknown command: tell the user to update altimate-code (`npm install -g altimate-code@latest`) and stop. - `FileSystem.open (…altimate-code/log/…)`: Codex's `workspace-write` sandbox blocks the CLI's log; tell the user to allow it as the README's troubleshooting table says, and stop. + Then list the user's own skill and knowledge requests to the workspace (read-only here): + ```bash + for ALTIMATE_NAME in altimate-code altimate; do + ALTIMATE_BIN="$(unalias "$ALTIMATE_NAME" 2>/dev/null; unset -f "$ALTIMATE_NAME" 2>/dev/null; command -v "$ALTIMATE_NAME")" + [ -x "$ALTIMATE_BIN" ] && break || ALTIMATE_BIN= + done + [ -n "$ALTIMATE_BIN" ] || { echo "altimate-code CLI not found (tried altimate-code, altimate)" >&2; exit 127; } + "$ALTIMATE_BIN" workspace review status --json < /dev/null + ``` + - Exit 0 answers JSON with `workspace_name`, `items`, `skipped` and `complete`. Each item has `kind` (`skill` or `knowledge`), `name`, `status` (`pending`, `active`, `rejected`, `superseded`, `withdrawn` or `retired`), `change` (`add` or `edit`), `reviewed_by_name`, `review_reason` and `expired`. + - Any other exit (not linked, not signed in, a server without review, an older altimate-code that has no `review` command): leave this part out without comment. + - Codex's sandbox has no network, so this can fail there with a connection error: then say once that `altimate-code workspace review status`, run in a terminal, lists them (or the Altimate web app does), and go on. + 2. **Show the state.** The JSON has `workspace` (`name`, `owner_name`, `is_owner`; `null` when the project is not linked), `proposals`, `team_rules` and `mine`. Show, briefly: - the number of team rules in the workspace, and their texts when there are 10 or fewer; - the user's own proposals in `mine` that are not yet active, with their `status` and, for a rejected one, the `reason`; + - the user's skill and knowledge requests, newest first: kind, name, status (`pending` → waiting for review, `active` → approved, `rejected`, `withdrawn`, `retired` → removed from the workspace), "update" for `change: edit`, the reviewer and the reason when given, and "waiting over 14 days" when `expired`. Do not list `superseded` ones (replaced by a newer request); say how many there were instead. Withdrawing a waiting request or removing an approved one happens in the Altimate web app, the altimate-code TUI (`/rules`) or the VS Code extension, not here; - then each entry in `proposals`, one at a time, as described in step 3. If `proposals` is empty, say that no proposed rules are waiting and stop. diff --git a/tests/resolve-cli.sh b/tests/resolve-cli.sh index be7a779..a2a2b79 100755 --- a/tests/resolve-cli.sh +++ b/tests/resolve-cli.sh @@ -8,7 +8,7 @@ cd "$(dirname "$0")/.." FILES=( plugins/altimate-code/commands/altimate.md:2 plugins/altimate-code/commands/review.md:1 - plugins/altimate-code/commands/rules.md:2 + plugins/altimate-code/commands/rules.md:3 plugins/altimate-code/skills/altimate-code/SKILL.md:2 plugins/altimate-code/skills/review/SKILL.md:1 )