Problem
internal/status/status.go has zero test coverage. The Run() function performs 5 health checks (binary, policy, Claude hooks, Copilot hooks, identity). If these misreport status, chitin status gives users wrong information about their setup.
Acceptance Criteria
Hints
- File:
internal/status/status.go
- Functions:
Run(projectDir string), Print(checks []Check, quiet bool), checkPolicy(), checkClaudeHooks(), checkCopilotHooks(), checkIdentity()
- Type:
Check{Name, OK, Detail, Critical}
- Note:
checkBinary() depends on PATH — may need to skip or mock
- Create test file:
internal/status/status_test.go
Generated by /forge fill
Problem
internal/status/status.gohas zero test coverage. TheRun()function performs 5 health checks (binary, policy, Claude hooks, Copilot hooks, identity). If these misreport status,chitin statusgives users wrong information about their setup.Acceptance Criteria
Run()returns a list of Check resultscheckPolicy()returns OK=true when chitin.yaml exists and OK=false when missingcheckClaudeHooks()returns OK=true when settings.json contains "chitin"checkCopilotHooks()returns OK=true when hooks.json contains "chitin"checkIdentity()returns OK=true when .chitin-identity existsPrint()returns exit code 0 when all critical checks passPrint()returns exit code 1 when a critical check failsPrint()quiet mode outputt.TempDir()for filesystem isolationgo test ./internal/status/...Hints
internal/status/status.goRun(projectDir string),Print(checks []Check, quiet bool),checkPolicy(),checkClaudeHooks(),checkCopilotHooks(),checkIdentity()Check{Name, OK, Detail, Critical}checkBinary()depends on PATH — may need to skip or mockinternal/status/status_test.goGenerated by /forge fill