docs(spec): align ARCE acronym, max-rounds default, and TUI preset key binding with implementation
CI / lint (pull_request) Failing after 28s
CI / security (pull_request) Successful in 1m2s
CI / typecheck (pull_request) Successful in 1m31s
CI / quality (pull_request) Successful in 31s
CI / coverage (pull_request) Has been skipped
CI / benchmark-publish (pull_request) Has been skipped
CI / build (pull_request) Successful in 32s
CI / push-validation (pull_request) Successful in 24s
CI / helm (pull_request) Successful in 35s
CI / integration_tests (pull_request) Failing after 4m11s
CI / e2e_tests (pull_request) Successful in 3m47s
CI / unit_tests (pull_request) Successful in 5m33s
CI / docker (pull_request) Has been skipped
CI / status-check (pull_request) Failing after 1s
CI / benchmark-regression (pull_request) Has been skipped

Three spec-implementation discrepancies resolved:

1. ARCE acronym: standardize on 'Adaptive Recursive Context Expansion' (the
   implementation's expand() method) across all spec locations. The previous
   spec had two different expansions — 'Analyze, Retrieve, Contextualize,
   Execute' (line 45489) and 'Autonomous Reasoning Context Extraction' (line
   30767) — neither matching the implementation. Closes #5182 (partial).

2. ARCE algorithm description: update to accurately reflect the current
   iterative multi-pass refinement implementation (composite scoring with
   convergence check) while preserving the aspirational full implementation
   description as a Note. Closes #5182 (partial).

3. ARCE max-rounds default: update from 3 to 5 to match the implementation's
   DEFAULT_ARCE_MAX_ITERATIONS constant in acms_advanced_strategies.py.
   Closes #5182 (partial).

4. TUI preset cycling key binding: replace ctrl+tab with ctrl+t in all spec
   locations (footer mockups, persona cycling section, help panel mockup,
   keyboard reference table). The implementation in tui/app.py and
   tui/widgets/help_panel_overlay.py uses ctrl+t because ctrl+tab is
   frequently captured by terminal emulators before reaching Textual.
   Closes #4978 (partial — key binding only; spec restructure deferred).
This commit is contained in:
2026-04-09 03:31:02 +00:00
parent 92f533dcff
commit fbda01c4f4
+19 -19
View File
@@ -29074,7 +29074,7 @@ When the sidebar is hidden, the conversation takes the full terminal width:
│ └─────────────────────────────────────────────────────────────────────────────────────┘ │
│ <span class="tui-primary">feature-dev</span> │ <span class="tui-dim">claude-4-sonnet</span> │ <span class="tui-warning">think: high</span> │ <span class="tui-dim">2 projects</span> │ $0.12 │
├──────────────────────────────────────────────────────────────────────────────────────────────┤
│ <span class="tui-dim">F1</span> Help │ <span class="tui-dim">shift+tab</span> Sidebar │ <span class="tui-dim">tab</span> Persona │ <span class="tui-dim">ctrl+tab</span> Preset │ <span class="tui-dim">ctrl+s</span> Sessions │ <span class="tui-dim">ctrl+q</span> Quit │
│ <span class="tui-dim">F1</span> Help │ <span class="tui-dim">shift+tab</span> Sidebar │ <span class="tui-dim">tab</span> Persona │ <span class="tui-dim">ctrl+t</span> Preset │ <span class="tui-dim">ctrl+s</span> Sessions │ <span class="tui-dim">ctrl+q</span> Quit │
└──────────────────────────────────────────────────────────────────────────────────────────────┘</pre></div>
Key elements in this layout:
@@ -29132,7 +29132,7 @@ When the sidebar is visible (shift+tab from hidden), it docks to the right at 32
│ └────────────────────────────────────────────────────────┘ │ │
│ <span class="tui-primary">feature-dev</span> │ <span class="tui-dim">claude-4-sonnet</span> │ <span class="tui-warning">think: med</span> │ <span class="tui-dim">2 proj</span> │ $0.12 │ │
├─────────────────────────────────────────────────────────────┴────────────────────────────────┤
│ <span class="tui-dim">F1</span> Help │ <span class="tui-dim">shift+tab</span> Sidebar │ <span class="tui-dim">tab</span> Persona │ <span class="tui-dim">ctrl+tab</span> Preset │ <span class="tui-dim">ctrl+s</span> Sessions │ <span class="tui-dim">ctrl+q</span> Quit │
│ <span class="tui-dim">F1</span> Help │ <span class="tui-dim">shift+tab</span> Sidebar │ <span class="tui-dim">tab</span> Persona │ <span class="tui-dim">ctrl+t</span> Preset │ <span class="tui-dim">ctrl+s</span> Sessions │ <span class="tui-dim">ctrl+q</span> Quit │
└──────────────────────────────────────────────────────────────────────────────────────────────┘</pre></div>
Key elements in this layout:
@@ -29229,7 +29229,7 @@ A **persona** is a TUI-only abstraction that bundles:
2. **Base arguments** — default arguments passed to the actor on every invocation
3. **Scoped projects** — projects always included in the session's context
4. **Scoped plans** — plans always included in the session's context
5. **Argument presets** — named argument overrides cycled with `ctrl+tab`
5. **Argument presets** — named argument overrides cycled with `ctrl+t`
6. **Display metadata** — short name, accent color, description
Personas are stored as YAML files in `~/.config/cleveragents/personas/` and are strictly a Presentation-layer concept — they never appear in the domain model, A2A protocol, or database schema.
@@ -29252,18 +29252,18 @@ The PersonaBar always shows the current state:
|--------------------|-------|--------------|
| Persona name | `$text-primary` on `$primary 10%` bg | `tab` cycle |
| Actor name | `$text-secondary` | `tab` cycle |
| Preset label | `$text-warning` (non-default) / `$text-muted` (default) | `ctrl+tab` cycle |
| Preset label | `$text-warning` (non-default) / `$text-muted` (default) | `ctrl+t` cycle |
| Scope indicator | `$text-muted` | Persona change or `/scope:add/remove` |
| Session cost | `$secondary 70%`, right-aligned | After each actor response |
#### Persona Cycling
`tab` cycles through personas in the configured cycle list. `ctrl+tab` cycles through the current persona's argument presets:
`tab` cycles through personas in the configured cycle list. `ctrl+t` cycles through the current persona's argument presets:
```
tab: persona_1 → persona_2 → persona_3 → persona_1 → ...
ctrl+tab: default → think: high → think: max → quick → default → ...
tab: persona_1 → persona_2 → persona_3 → persona_1 → ...
ctrl+t: default → think: high → think: max → quick → default → ...
```
When cycling, the PersonaBar updates immediately. The actor binding for the session is updated — subsequent prompts use the new persona's actor and scope.
@@ -29647,7 +29647,7 @@ The PersonaEditorModal is used for creating and editing personas:
│ ── <span class="tui-bold">Scoped Plans</span> ──────────────────────────────────────────────────────────── │
│ [ ] fix-auth-bug (01HXM8C2) [ ] refactor-models (01HXM9D3) │
│ │
│ ── <span class="tui-bold">Argument Presets</span> (ctrl+tab cycling) ───────────────────────────────────── │
│ ── <span class="tui-bold">Argument Presets</span> (ctrl+t cycling) ───────────────────────────────────── │
│ ┌────────────────────────────────────────────────────────────────────────────────────┐ │
│ │ 1. default │ <span class="tui-dim">(base arguments)</span> │ │
│ │ 2. think: high │ thinking_effort=high │ │
@@ -29796,7 +29796,7 @@ Notifications appear as a single-line Flash bar above the prompt, auto-dismissin
│ <span class="tui-bold">Navigation</span> │
│ <span class="tui-dim">shift+tab</span> Cycle sidebar: hidden → visible → fullscreen │
│ <span class="tui-dim">tab</span> Cycle to next persona │
│ <span class="tui-dim">ctrl+tab</span> Cycle to next argument preset │
│ <span class="tui-dim">ctrl+t</span> Cycle to next argument preset │
│ <span class="tui-dim">ctrl+[/]</span> Switch session tab │
│ <span class="tui-dim">escape</span> Close overlay / sidebar / return to prompt │
│ │
@@ -30402,7 +30402,7 @@ Hotkeys vary by the current screen and focused widget. The help panel (`F1`) alw
| `ctrl+enter` | Submit prompt (multi-line mode) |
| `shift+enter` / `ctrl+j` | Insert newline (switch to multi-line mode) |
| `tab` | Cycle to next persona |
| `ctrl+tab` | Cycle to next argument preset |
| `ctrl+t` | Cycle to next argument preset |
| `up` (at row 0) | Previous prompt history entry |
| `down` (at last row) | Next prompt history entry |
| `@` | Open Reference Picker overlay |
@@ -30764,8 +30764,8 @@ These keys set the default context policy for all projects. Project-level contex
| `context.summarize.model` | string | *(uses actor's model)* | `CLEVERAGENTS_CTX_SUMMARY_MODEL` | Model to use for context summarization. When unset, the active actor's own model is used. Set this to a faster/cheaper model (e.g., a smaller variant) to reduce summarization cost. |
| `context.strategies.enabled` | list | `["simple-keyword", "semantic-embedding", "breadth-depth-navigator"]` | `CLEVERAGENTS_CTX_STRATEGIES` | Ordered list of ACMS context strategies enabled globally. Strategies are run in parallel and their results fused by the Context Assembly Pipeline. |
| `context.strategies.custom.*` | object | *(none)* | — | Registration block for custom context strategies. Each key under `custom` names a strategy; the value specifies its `module`, `class`, `max_quality`, and optional `config`. |
| `context.strategies.arce.model` | string | *(uses actor's model)* | `CLEVERAGENTS_CTX_ARCE_MODEL` | Model used by the ARCE (Autonomous Reasoning Context Extraction) strategy for its internal reasoning loop. |
| `context.strategies.arce.max-rounds` | integer | `3` | `CLEVERAGENTS_CTX_ARCE_ROUNDS` | Maximum number of search-refine rounds the ARCE strategy performs before returning results. |
| `context.strategies.arce.model` | string | *(uses actor's model)* | `CLEVERAGENTS_CTX_ARCE_MODEL` | Model used by the ARCE (Adaptive Recursive Context Expansion) strategy for its internal reasoning loop. |
| `context.strategies.arce.max-rounds` | integer | `5` | `CLEVERAGENTS_CTX_ARCE_ROUNDS` | Maximum number of search-refine rounds the ARCE strategy performs before returning results. |
| `context.strategies.breadth-depth-navigator.max-hops` | integer | `4` | `CLEVERAGENTS_CTX_BDN_HOPS` | Maximum graph traversal depth for the breadth-depth-navigator strategy. |
| `context.budget.response-reserve-tokens` | integer | `4096` | `CLEVERAGENTS_CTX_RESPONSE_RESERVE` | Number of tokens reserved from the model's context window for the response. Subtracted before computing the context budget. |
| `context.budget.tool-definition-estimate` | integer | *(auto-computed)* | `CLEVERAGENTS_CTX_TOOL_ESTIMATE` | Estimated tokens consumed by tool definitions in the prompt. When unset, computed from the active skill set. |
@@ -45486,15 +45486,15 @@ Vector similarity search. Finds semantically related content even without exact
The graph-aware strategy that uses the depth/breadth projection system. Works with the UKO graph to provide structurally-aware context at any detail depth. Supports focus items, hop traversal, and detail depth gradients. This is the primary strategy for code-aware context. Quality score: 0.85.
##### Strategy: `arce` (Analyze, Retrieve, Contextualize, Execute)
##### Strategy: `arce` (Adaptive Recursive Context Expansion)
The sophisticated multi-modal pipeline. Combines text, vector, and graph search with intent analysis and actor-type-aware patterns. This is the "kitchen sink" strategy that produces the highest quality results but requires all backends. Quality score: 0.95.
The iterative multi-pass refinement strategy. Scores fragments using a composite of relevance, detail depth, and keyword diversity, then iteratively refines rankings until convergence (score improvement < threshold) or the iteration limit is reached. Quality score: 0.95.
Actor-type-specific graph traversal patterns:
- **Strategy actors**: Broader, shallower traversal. Emphasis on module boundaries and dependency structures. Prioritizes `uko:Container` and `uko:Boundary` nodes.
- **Execution actors**: Narrower, deeper traversal. Emphasis on implementation details, function bodies, and test coverage. Prioritizes `uko:Atom` nodes.
- **Estimation actors**: Focus on size metrics, complexity indicators, and historical data. Prioritizes temporal data.
> **Note**: The current implementation uses word-overlap scoring as a practical approximation. The full implementation (requiring all backends) will add LLM-based intent analysis and actor-type-aware graph traversal patterns:
>
> - **Strategy actors**: Broader, shallower traversal. Emphasis on module boundaries and dependency structures. Prioritizes `uko:Container` and `uko:Boundary` nodes.
> - **Execution actors**: Narrower, deeper traversal. Emphasis on implementation details, function bodies, and test coverage. Prioritizes `uko:Atom` nodes.
> - **Estimation actors**: Focus on size metrics, complexity indicators, and historical data. Prioritizes temporal data.
##### Strategy: `temporal-archaeology`