Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion plugins/altimate-code/.codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down
6 changes: 6 additions & 0 deletions plugins/altimate-code/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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).

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: State the altimate-code release requirement, as 1.2.0 did

The 1.2.0 entry ends with "The hooks need an altimate-code release with learn hook; with an older one they do nothing". This release needs an altimate-code with workspace review status, and on an older CLI /altimate-code:rules silently omits the section (rules.md line 32), so the docs are the only place a user can learn why. Add the equivalent sentence here or in the README.


## [1.2.0] — 2026-10-30

### Added
Expand Down
3 changes: 2 additions & 1 deletion plugins/altimate-code/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <id> --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.

Expand Down
16 changes: 15 additions & 1 deletion plugins/altimate-code/commands/rules.md
Original file line number Diff line number Diff line change
@@ -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.
Expand All @@ -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`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: complete and skipped are documented but never used

These two response fields are introduced here, but the display rules in step 2 read only items, workspace_name and the item fields. If complete can be false (partial result) or skipped non-zero, the prompt tells the agent to present a possibly truncated list as the whole list. Add a bullet for the complete: false/skipped > 0 case (say the list may be partial and to re-run), or drop the fields from this description.

- 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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WARNING: This bullet swallows the sandbox case the next bullet asks to report

"Any other exit" includes the no-network failure in Codex's default sandbox, so an agent following this bullet literally leaves the section out silently — the exact environment this feature targets — and never emits the pointer required on the next line. Scope this bullet to the listed causes, for example "Any other exit (except the sandbox connection error below)", so the two rules cannot both match the same exit.

- 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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: Recovery guidance names only altimate-code, although the plugin resolves both names

The resolver block immediately above falls back to altimate because curl installs may expose only that name (CHANGELOG 1.1.0 "recovery messages now … point to altimate"). A user with such an install is told to run a command that does not exist. Mention both names, e.g. altimate-code workspace review status (or altimate …), as the resolver does.


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;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: "newest first" cannot be applied from the documented item shape

The item fields listed on line 31 contain no timestamp (requested_at, created_at, …), so the agent has nothing to sort by and may invent an order. Either document that items already arrives newest first, or add the field to the item contract and sort on it.

- 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.
Expand Down
2 changes: 1 addition & 1 deletion tests/resolve-cli.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
)
Expand Down
Loading