UAT: agents project context set --view ACMS pipeline config (hot_max_tokens, strategies, etc.) stored globally — not per-view — preventing view-specific ACMS tuning #6036

Open
opened 2026-04-09 13:57:26 +00:00 by HAL9000 · 1 comment
Owner

Summary

The agents project context set --view <phase> command correctly stores the resource/path include/exclude filters per-view (in ProjectContextPolicy.strategize_view, etc.), but the ACMS pipeline configuration (hot_max_tokens, warm_max_decisions, cold_max_decisions, strategies, default_breadth, default_depth, etc.) is stored in a single global acms_config dict regardless of which --view is specified. This means different views cannot have different ACMS pipeline configurations.

Expected Behavior (per spec)

From docs/specification.md line 3740:

Manage ACMS context policies for the hot/warm/cold tiers, per-view context selection, strategy configuration, UKO depth/breadth parameters, and context budget tuning.

The spec CLI synopsis shows --hot-max-tokens, --strategy, --default-breadth, --default-depth as options on agents project context set [--view ...], implying these should be configurable per-view. For example, the strategize view might need a larger hot-max-tokens budget than the execute view.

Actual Behavior

In src/cleveragents/cli/commands/project_context.py, the context_set() function:

  1. Reads the policy with _read_policy() — correctly per-view
  2. Reads the ACMS config with _read_acms_config()single global dict
  3. Updates the ACMS config dict regardless of --view value
  4. Writes back with _write_policy() — stores acms_config as a single top-level key

The _read_acms_config() function reads raw.get("acms_config", _default_acms_config()) — a single flat dict, not per-view.

Consequently:

  • agents project context set --view strategize --hot-max-tokens 16000 sets hot_max_tokens globally
  • agents project context set --view execute --hot-max-tokens 8000 overwrites the strategize setting
  • There is no way to have strategize use 16000 tokens and execute use 8000 tokens

Code Location

  • src/cleveragents/cli/commands/project_context.py:
    • _read_acms_config() (line ~130) — reads single global acms_config key
    • _write_policy() (line ~160) — stores single acms_config key
    • context_set() (line ~396) — updates global acms_config regardless of --view

Fix Required

Store ACMS config per-view: acms_config_strategize, acms_config_execute, acms_config_apply, acms_config_default (or nest under acms_config.views.<phase>). The _read_acms_config() and _write_policy() helpers need to be view-aware.

Spec References

  • docs/specification.md line 3740: "per-view context selection, strategy configuration"
  • docs/specification.md lines 3744-3800: agents project context set [--view ...] with ACMS options
  • v3.4.0 acceptance criterion #1: "Context policies configurable with view-specific settings"

Automated by CleverAgents Bot
Supervisor: UAT Testing | Agent: uat-tester

## Summary The `agents project context set --view <phase>` command correctly stores the resource/path include/exclude filters per-view (in `ProjectContextPolicy.strategize_view`, etc.), but the ACMS pipeline configuration (`hot_max_tokens`, `warm_max_decisions`, `cold_max_decisions`, `strategies`, `default_breadth`, `default_depth`, etc.) is stored in a **single global `acms_config` dict** regardless of which `--view` is specified. This means different views cannot have different ACMS pipeline configurations. ## Expected Behavior (per spec) From `docs/specification.md` line 3740: > Manage ACMS context policies for the hot/warm/cold tiers, **per-view context selection**, strategy configuration, UKO depth/breadth parameters, and context budget tuning. The spec CLI synopsis shows `--hot-max-tokens`, `--strategy`, `--default-breadth`, `--default-depth` as options on `agents project context set [--view ...]`, implying these should be configurable per-view. For example, the strategize view might need a larger hot-max-tokens budget than the execute view. ## Actual Behavior In `src/cleveragents/cli/commands/project_context.py`, the `context_set()` function: 1. Reads the policy with `_read_policy()` — correctly per-view 2. Reads the ACMS config with `_read_acms_config()` — **single global dict** 3. Updates the ACMS config dict regardless of `--view` value 4. Writes back with `_write_policy()` — stores `acms_config` as a single top-level key The `_read_acms_config()` function reads `raw.get("acms_config", _default_acms_config())` — a single flat dict, not per-view. Consequently: - `agents project context set --view strategize --hot-max-tokens 16000` sets hot_max_tokens globally - `agents project context set --view execute --hot-max-tokens 8000` overwrites the strategize setting - There is no way to have strategize use 16000 tokens and execute use 8000 tokens ## Code Location - `src/cleveragents/cli/commands/project_context.py`: - `_read_acms_config()` (line ~130) — reads single global `acms_config` key - `_write_policy()` (line ~160) — stores single `acms_config` key - `context_set()` (line ~396) — updates global acms_config regardless of `--view` ## Fix Required Store ACMS config per-view: `acms_config_strategize`, `acms_config_execute`, `acms_config_apply`, `acms_config_default` (or nest under `acms_config.views.<phase>`). The `_read_acms_config()` and `_write_policy()` helpers need to be view-aware. ## Spec References - `docs/specification.md` line 3740: "per-view context selection, strategy configuration" - `docs/specification.md` lines 3744-3800: `agents project context set [--view ...]` with ACMS options - v3.4.0 acceptance criterion #1: "Context policies configurable with view-specific settings" --- **Automated by CleverAgents Bot** Supervisor: UAT Testing | Agent: uat-tester
HAL9000 added this to the v3.2.0 milestone 2026-04-09 14:31:50 +00:00
Author
Owner

Label compliance fix applied:

  • Added missing labels and/or milestone to bring issue into compliance with CONTRIBUTING.md

Automated by CleverAgents Bot
Supervisor: Backlog Grooming | Agent: backlog-groomer

Label compliance fix applied: - Added missing labels and/or milestone to bring issue into compliance with CONTRIBUTING.md --- **Automated by CleverAgents Bot** Supervisor: Backlog Grooming | Agent: backlog-groomer
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
cleveragents/cleveragents-core#6036
No description provided.