Skip to content

[BUG] The Decider: unknown fields #15

@zircote

Description

@zircote

Description

The Decider: unknown fields are because the MADR template uses a different metadata structure than the frontmatter schema—deciders are in the body text, not parsed as structured metadata. This could be enhanced in a future version.

Steps to Reproduce

  1. Run git adr show 20251215-coverage-target-95-percent
  2. See there is no Decider data

Expected Behavior

There should be in the ADR record the git user that created/committed the decision

Actual Behavior

What actually happened.

Environment

  • OS: [e.g., macOS 14.0, Ubuntu 22.04]
  • Python version: [e.g., 3.13.0]
  • git-adr version: [e.g., 0.1.0]
  • Git version: [e.g., 2.42.0]

Logs/Output

╭──────────────────────────────────────────────────────────────────────────────────────────────────────────── ADR ─────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ Coverage target 95 percent                                                                                                                                                                                                   │
│                                                                                                                                                                                                                              │
│ ID: 20251215-coverage-target-95-percent                                                                                                                                                                                      │
│ Date: 2025-12-15                                                                                                                                                                                                             │
│ Status: accepted                                                                                                                                                                                                             │
│ Tags: testing, scope-creep, late-addition, quality, ci                                                                                                                                                                       │
│ Linked commits: 6d5c264d, e53be5f7                                                                                                                                                                                           │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯


                                                                                                             Status                                                                                                             

Accepted                                                                                                                                                                                                                        


                                                                                                 Context and Problem Statement                                                                                                  

Original REQUIREMENTS.md specified 90% test coverage. The PR CI configuration (.github/workflows/ci.yml) required 95%. This mismatch was discovered during implementation.                                                      

Decision Drivers:                                                                                                                                                                                                               

 • CI requirements take precedence (blocking merge)                                                                                                                                                                             
 • Higher coverage provides better quality assurance                                                                                                                                                                            
 • Tests caught real issues during coverage push                                                                                                                                                                                

Type: Scope Creep (Late Addition)                                                                                                                                                                                               


                                                                                                            Decision                                                                                                            

Raise coverage target from 90% to 95% and add tests to meet it.                                                                                                                                                                 


                                                                                                         Implementation                                                                                                         

 • Added tests/test_completion.py (12 tests) for shell completion code                                                                                                                                                          
 • Added tests/test_rm_command.py (14 tests) for new rm command                                                                                                                                                                 
 • Final coverage: 95.19%                                                                                                                                                                                                       


                                                                                                          Consequences                                                                                                          

                                                                                                            Positive                                                                                                            

 • Higher code quality assurance                                                                                                                                                                                                
 • Better coverage of edge cases                                                                                                                                                                                                
 • Shell completion code now tested (was untested gap)                                                                                                                                                                          
 • Tests caught real issues during development                                                                                                                                                                                  
 • CI passes without lowering standards                                                                                                                                                                                         

                                                                                                            Negative                                                                                                            

 • Additional test development time (~3 hours)                                                                                                                                                                                  
 • Coverage requirement more strict than originally planned                                                                                                                                                                     
 • May slow future feature development slightly                                                                                                                                                                                 

                                                                                                            Neutral                                                                                                             

 • Coverage is enforced by CI, not optional                                                                                                                                                                                     
 • Same tooling (pytest-cov) used                                                                                                                                                                                               


                                                                                                         Classification                                                                                                         

This is acceptable scope creep because:                                                                                                                                                                                         

 1 Higher quality is always beneficial                                                                                                                                                                                          
 2 CI already enforced this requirement (non-negotiable)                                                                                                                                                                        
 3 Tests caught real issues during development                                                                                                                                                                                  
 4 Industry best practice for CLI tools                                                                                                                                                                                         


                                                                                                       Options Considered                                                                                                       

                                                                                             Option 1: Raise target to 95% (Chosen)                                                                                             

Meet the CI requirement by adding tests.                                                                                                                                                                                        

Pros: Passes CI, higher quality Cons: Additional work                                                                                                                                                                           

                                                                                              Option 2: Lower CI threshold to 90%                                                                                               

Change .github/workflows/ci.yml to accept 90%.                                                                                                                                                                                  

Pros: Less work Cons: Lower quality, inconsistent with other projects                                                                                                                                                           


                                                                                                        Decision Outcome                                                                                                        

Chosen option: "Raise target to 95%", because CI requirements should be met rather than lowered, and the additional tests provided real value by catching bugs.                                                                 


                                                                                                        More Information                                                                                                        

Coverage Breakdown:                                                                                                                                                                                                             

                                                                                                                                                                                                                                
 Name                           Stmts   Miss  Cover                                                                                                                                                                             
 --------------------------------------------------                                                                                                                                                                             
 src/git_adr/__init__.py            3      0   100%                                                                                                                                                                             
 src/git_adr/cli.py               XXX     XX    95%                                                                                                                                                                             
 src/git_adr/core/adr.py          XXX     XX    96%                                                                                                                                                                             
 src/git_adr/core/git.py          XXX     XX    94%                                                                                                                                                                             
 ...                                                                                                                                                                                                                            
 --------------------------------------------------                                                                                                                                                                             
 TOTAL                           XXXX    XXX    95%                                                                                                                                                                             
                                                                                                                                                                                                                                

Tests Added:                                                                                                                                                                                                                    

 • test_completion.py: bash, zsh, fish, PowerShell completion generation                                                                                                                                                        
 • test_rm_command.py: interactive confirmation, force flag, warnings                                                                                                                                                           

Date: 2025-12-15 Deciders: PR Requirements (CI configuration)                                                                                                                                                                   

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions