---
anchor_id: OBPI-0.0.30-05
anchor_kind: obpi
generated_at: 2026-05-10T08:22:32.111912+00:00
scaffold_version: 1.0
---

# Walkthrough: OBPI-0.0.30-05

## 1. What I see (the problem)

**Prompt:** *What did I observe that motivates this change? What hurts if nothing happens?*

**Evidence:**

- OBPI-0.0.30-05-justify-integration
- OBPI-0.0.27-04
- OBPI-0.0.29-09
- OBPI-0.0.30-03
- OBPI-0.0.30-05
- OBPI-0.0.30-02
- ADR-0.0.30
- ADR-0.0.19

_[To be filled]_

## 2. Per-instance severity

**Prompt:** *How bad is each occurrence? One incident, a pattern, or a class of failure?*

**Evidence:**

- _(no citations for this section)_

_[To be filled]_

## 3. Why this scope

**Prompt:** *Why is the change boundary drawn here and not wider or narrower?*

**Evidence:**

- _(no citations for this section)_

_[To be filled]_

## 4. What it proposes

**Prompt:** *In one paragraph, what is the change?*

**Evidence:**

- _(no citations for this section)_

_[To be filled]_

## 5. Routing decision

**Prompt:** *Direct fix, OBPI ceremony, or new ADR? Cite the threshold that routed it.*

**Evidence:**

- _(no citations for this section)_

_[To be filled]_

## 6. Why this design is right-sized

**Prompt:** *Why isn't this bigger or smaller? What does this shape defend against?*

**Evidence:**

- _(no citations for this section)_

_[To be filled]_

## 7. What convinces me (evidence)

**Prompt:** *Which rules, ledger events, and commits ground this decision?*

**Evidence:**

- adr-audit (.gzkit/rules/adr-audit.md)
- brief-heading-conventions (.gzkit/rules/brief-heading-conventions.md)
- cross-platform (.gzkit/rules/cross-platform.md)
- gate5-runbook-code-covenant (.gzkit/rules/gate5-runbook-code-covenant.md)
- gh-cli (.gzkit/rules/gh-cli.md)
- governance-core (.gzkit/rules/governance-core.md)
- model-selection (.gzkit/rules/model-selection.md)
- models (.gzkit/rules/models.md)
- pythonic (.gzkit/rules/pythonic.md)
- security-sensitivity (.gzkit/rules/security-sensitivity.md)
- skill-surface-sync (.gzkit/rules/skill-surface-sync.md)
- tests (.gzkit/rules/tests.md)
- tool-skill-runbook-alignment (.gzkit/rules/tool-skill-runbook-alignment.md)

_[To be filled]_

## 8. Residual uncertainty

**Prompt:** *What am I not sure about? What would change my mind?*

**Evidence:**

- _(no citations for this section)_

_[To be filled]_


### Authoring-time complexity hints

- **/Users/jeff/Documents/Code/gzkit/src/gzkit/justify/cli.py:183-183** — long_parameter_list (approaching)
  Guidance: cyclomatic complexity above the corpus p90 violates the single-responsibility ceiling Martin names for function decomposition.
  Move: When branch count rises, I usually suspect hidden policy logic, mode handling, or too many cases in one function. First move: extract decision policy or split paths by responsibility. But a high CC can be acceptable in explicit parsers/validators when branches are deliberately enumerated and well-tested.
- **/Users/jeff/Documents/Code/gzkit/src/gzkit/justify/cli.py:206-225** — long_parameter_list (approaching_warn)
  Guidance: cyclomatic complexity above the corpus p90 violates the single-responsibility ceiling Martin names for function decomposition.
  Move: When branch count rises, I usually suspect hidden policy logic, mode handling, or too many cases in one function. First move: extract decision policy or split paths by responsibility. But a high CC can be acceptable in explicit parsers/validators when branches are deliberately enumerated and well-tested.
- **/Users/jeff/Documents/Code/gzkit/src/gzkit/justify/walkthrough.py:194-194** — long_parameter_list (approaching)
  Guidance: cyclomatic complexity above the corpus p90 violates the single-responsibility ceiling Martin names for function decomposition.
  Move: When branch count rises, I usually suspect hidden policy logic, mode handling, or too many cases in one function. First move: extract decision policy or split paths by responsibility. But a high CC can be acceptable in explicit parsers/validators when branches are deliberately enumerated and well-tested.
- **/Users/jeff/Documents/Code/gzkit/src/gzkit/justify/walkthrough.py:208-208** — long_parameter_list (approaching_warn)
  Guidance: cyclomatic complexity above the corpus p90 violates the single-responsibility ceiling Martin names for function decomposition.
  Move: When branch count rises, I usually suspect hidden policy logic, mode handling, or too many cases in one function. First move: extract decision policy or split paths by responsibility. But a high CC can be acceptable in explicit parsers/validators when branches are deliberately enumerated and well-tested.
- **/Users/jeff/Documents/Code/gzkit/src/gzkit/justify/walkthrough.py:112-112** — long_parameter_list (approaching)
  Guidance: cyclomatic complexity above the corpus p90 violates the single-responsibility ceiling Martin names for function decomposition.
  Move: When branch count rises, I usually suspect hidden policy logic, mode handling, or too many cases in one function. First move: extract decision policy or split paths by responsibility. But a high CC can be acceptable in explicit parsers/validators when branches are deliberately enumerated and well-tested.
