Feature: Project context coverage round 3 (pccov3) Additional Behave scenarios targeting specific uncovered lines in src/cleveragents/cli/commands/project_context.py. Covered lines: - 156: _read_policy returns fresh default when _load_policy_json is None - 175: _read_acms_config returns defaults when _load_policy_json is None - 350: _simulate_context_assembly truncates fragment content >100 chars - 674-675, 678: context_set rejects negative depth-gradient hop - 864-869: context_show rich output displays execution environment info Background: Given a pccov3 in-memory database is initialized And a project "local/pccov3-app" exists for pccov3 # --- Line 156: _read_policy returns ProjectContextPolicy() when raw is None --- Scenario: _read_policy returns fresh default when no policy blob exists When I pccov3 read the policy for "local/pccov3-app" Then the pccov3 policy should be a default ProjectContextPolicy And the pccov3 policy strategize_view should be None And the pccov3 policy execute_view should be None And the pccov3 policy apply_view should be None # --- Line 175: _read_acms_config returns _default_acms_config() when raw is None --- Scenario: _read_acms_config returns default config when no policy blob exists When I pccov3 read the ACMS config for "local/pccov3-app" Then the pccov3 ACMS config should equal the default ACMS config # --- Line 350: content truncation in _simulate_context_assembly --- Scenario: Simulate truncates fragment content longer than 100 characters Given the pccov3 tier service has a fragment with long content for "local/pccov3-app" When I pccov3 run simulate_context_assembly for "local/pccov3-app" Then the pccov3 assembled fragments should have truncated content ending with "..." # --- Lines 674-675, 678: negative depth-gradient hop --- Scenario: Context set rejects negative depth-gradient hop value When I pccov3 run context set on "local/pccov3-app" with depth-gradient "-1:5" Then the pccov3 command should have exit code 1 And the pccov3 output should contain "hop must be a non-negative integer" # --- Lines 864-869: execution environment info in context_show rich output --- Scenario: Context show rich output displays execution environment and priority Given I pccov3 seed execution environment "container" and priority "override" for "local/pccov3-app" When I pccov3 run context show on "local/pccov3-app" without view Then the pccov3 command should succeed And the pccov3 output should contain "Execution Environment" And the pccov3 output should contain "container" And the pccov3 output should contain "override" # --- Lines 864-869: only ee set, no priority --- Scenario: Context show rich output displays execution environment without priority Given I pccov3 seed execution environment "host" without priority for "local/pccov3-app" When I pccov3 run context show on "local/pccov3-app" without view Then the pccov3 command should succeed And the pccov3 output should contain "Execution Environment" And the pccov3 output should contain "host" # --- Lines 864-869: only eep set, no ee --- Scenario: Context show rich output displays priority without execution environment Given I pccov3 seed priority "fallback" without execution environment for "local/pccov3-app" When I pccov3 run context show on "local/pccov3-app" without view Then the pccov3 command should succeed And the pccov3 output should contain "Execution Environment" And the pccov3 output should contain "fallback" # --- _DEFAULT_SKELETON_RATIO spec alignment --- Scenario: Default ACMS config skeleton_ratio matches spec value of 0.15 When I pccov3 read the ACMS config for "local/pccov3-app" Then the pccov3 ACMS config skeleton_ratio should be 0.15