[BUG] Default global automation profile is manual but ADR-017 specifies supervised #9152

Open
opened 2026-04-14 08:39:26 +00:00 by HAL9000 · 0 comments
Owner

Metadata

  • Commit Message: fix(service): align default global automation profile with ADR-017 (supervised)
  • Branch: fix/automation-profile-default-supervised

Background and Context

The AutomationProfileService in src/cleveragents/application/services/automation_profile_service.py defines the fallback global default profile. ADR-017 (docs/adr/ADR-017-automation-profiles.md) is the authoritative architectural decision record for automation profiles.

Current Behavior

The service uses manual as the hardcoded global default:

# src/cleveragents/application/services/automation_profile_service.py
_DEFAULT_PROFILE = "manual"

When no profile is configured at any level (plan, action, project, global), the resolved profile is manual.

Expected Behavior

Per ADR-017 (docs/adr/ADR-017-automation-profiles.md §Constraints):

"The default global profile is supervised (configurable via core.automation-profile)."

The fallback default should be supervised, not manual.

Spec Inconsistency

There is a three-way contradiction across spec documents:

Document Default value
docs/adr/ADR-017-automation-profiles.md (§Constraints) supervised
docs/reference/automation_profile_service.md (§Overview) manual
docs/reference/automation_profiles.md (§Resolution Precedence) review

Per CONTRIBUTING.md: "Treat the project specification as the authoritative source of truth. Architectural changes follow an ADR process... Once approved, the decision is incorporated into the specification." ADR-017 is the authoritative source and specifies supervised.

The reference docs (automation_profile_service.md and automation_profiles.md) are inconsistent with each other and with the ADR. The reference docs should be updated to match ADR-017, and the implementation should use supervised as the default.

Acceptance Criteria

  • _DEFAULT_PROFILE in AutomationProfileService is changed from "manual" to "supervised"
  • docs/reference/automation_profile_service.md updated to state default is supervised
  • docs/reference/automation_profiles.md §Resolution Precedence updated to state system default is supervised
  • BDD scenario "Default global is manual when nothing configured" in features/consolidated_automation_profile.feature updated to expect supervised
  • All tests pass after the change

Supporting Information

Affected file: src/cleveragents/application/services/automation_profile_service.py line _DEFAULT_PROFILE = "manual"

Authoritative spec: docs/adr/ADR-017-automation-profiles.md §Constraints: "The default global profile is supervised (configurable via core.automation-profile)."

Conflicting reference docs:

  • docs/reference/automation_profile_service.md: says manual
  • docs/reference/automation_profiles.md: says review

Subtasks

  • Change _DEFAULT_PROFILE = "manual" to _DEFAULT_PROFILE = "supervised" in AutomationProfileService
  • Update docs/reference/automation_profile_service.md to reflect supervised default
  • Update docs/reference/automation_profiles.md §Resolution Precedence to reflect supervised default
  • Update BDD scenario "Default global is manual when nothing configured" to expect supervised
  • Run nox (all default sessions), fix any errors
  • Verify coverage >=97% via nox -s coverage_report

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly.
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly.
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done.

Automated by CleverAgents Bot
Supervisor: UAT Test Pool | Agent: uat-test-pool-supervisor

## Metadata - **Commit Message**: `fix(service): align default global automation profile with ADR-017 (supervised)` - **Branch**: `fix/automation-profile-default-supervised` ## Background and Context The `AutomationProfileService` in `src/cleveragents/application/services/automation_profile_service.py` defines the fallback global default profile. ADR-017 (`docs/adr/ADR-017-automation-profiles.md`) is the authoritative architectural decision record for automation profiles. ## Current Behavior The service uses `manual` as the hardcoded global default: ```python # src/cleveragents/application/services/automation_profile_service.py _DEFAULT_PROFILE = "manual" ``` When no profile is configured at any level (plan, action, project, global), the resolved profile is `manual`. ## Expected Behavior Per **ADR-017** (`docs/adr/ADR-017-automation-profiles.md` §Constraints): > "The default global profile is `supervised` (configurable via `core.automation-profile`)." The fallback default should be `supervised`, not `manual`. ## Spec Inconsistency There is a three-way contradiction across spec documents: | Document | Default value | |----------|---------------| | `docs/adr/ADR-017-automation-profiles.md` (§Constraints) | `supervised` | | `docs/reference/automation_profile_service.md` (§Overview) | `manual` | | `docs/reference/automation_profiles.md` (§Resolution Precedence) | `review` | Per CONTRIBUTING.md: *"Treat the project specification as the authoritative source of truth. Architectural changes follow an ADR process... Once approved, the decision is incorporated into the specification."* ADR-017 is the authoritative source and specifies `supervised`. The reference docs (`automation_profile_service.md` and `automation_profiles.md`) are inconsistent with each other and with the ADR. The reference docs should be updated to match ADR-017, and the implementation should use `supervised` as the default. ## Acceptance Criteria - [ ] `_DEFAULT_PROFILE` in `AutomationProfileService` is changed from `"manual"` to `"supervised"` - [ ] `docs/reference/automation_profile_service.md` updated to state default is `supervised` - [ ] `docs/reference/automation_profiles.md` §Resolution Precedence updated to state system default is `supervised` - [ ] BDD scenario `"Default global is manual when nothing configured"` in `features/consolidated_automation_profile.feature` updated to expect `supervised` - [ ] All tests pass after the change ## Supporting Information **Affected file**: `src/cleveragents/application/services/automation_profile_service.py` line `_DEFAULT_PROFILE = "manual"` **Authoritative spec**: `docs/adr/ADR-017-automation-profiles.md` §Constraints: *"The default global profile is `supervised` (configurable via `core.automation-profile`)."* **Conflicting reference docs**: - `docs/reference/automation_profile_service.md`: says `manual` - `docs/reference/automation_profiles.md`: says `review` ## Subtasks - [ ] Change `_DEFAULT_PROFILE = "manual"` to `_DEFAULT_PROFILE = "supervised"` in `AutomationProfileService` - [ ] Update `docs/reference/automation_profile_service.md` to reflect `supervised` default - [ ] Update `docs/reference/automation_profiles.md` §Resolution Precedence to reflect `supervised` default - [ ] Update BDD scenario `"Default global is manual when nothing configured"` to expect `supervised` - [ ] Run `nox` (all default sessions), fix any errors - [ ] Verify coverage >=97% via `nox -s coverage_report` ## Definition of Done This issue is complete when: - All subtasks above are completed and checked off. - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly. - The commit is pushed to the remote on the branch matching the **Branch** in Metadata exactly. - The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done. --- **Automated by CleverAgents Bot** Supervisor: UAT Test Pool | Agent: uat-test-pool-supervisor
HAL9000 added this to the v3.5.0 milestone 2026-04-14 08:50:11 +00:00
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#9152
No description provided.