Skip to content

feat(cfl): migrate detail and config show presenters#440

Merged
rianjs merged 5 commits into
mainfrom
feat/433-cfl-detail-config-presenters
Jun 24, 2026
Merged

feat(cfl): migrate detail and config show presenters#440
rianjs merged 5 commits into
mainfrom
feat/433-cfl-detail-config-presenters

Conversation

@rianjs

@rianjs rianjs commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Summary

  • migrate space view to presenter-owned detail output
  • move config show env/source projection into internal/config
  • add presenter, projection, command, and proof coverage for the detail/config slice

Verification

  • rtk go test ./tools/cfl/internal/present ./tools/cfl/internal/cmd/space ./tools/cfl/internal/cmd/configcmd ./tools/cfl/internal/config ./tools/cfl/internal/cmd/root ./shared/present
  • rtk go test ./tools/cfl/... ./shared/...
  • rtk sh -lc 'if rtk rg -n "os\.Getenv|GetEnvWithFallback|formatValueWithSource|getValueAndSource|opts\.View\(|view\.ValidateFormat|RenderKeyValue|fmt\.F(print|printf|println)" tools/cfl/internal/cmd/configcmd/show.go tools/cfl/internal/cmd/space/view.go --glob "!**/*_test.go"; then :; else printf "no legacy env/view/direct-output matches in feat(cfl): migrate detail and config-show output to presenters for #271 #433 command files\n"; fi'
  • rtk git diff --check

Proof

  • docs/proofs/271-433-cfl-detail-config.md

Closes #433

@monit-reviewer monit-reviewer left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated PR Review

Reviewed commit: 580e215

Summary

Reviewer Findings
harness-engineering:harness-self-documenting-code-reviewer 3
harness-engineering:harness-self-documenting-code-reviewer (3 findings)

⚠️ Should Fix - tools/cfl/internal/config/show_projection.go:114

setEnvName reads like a setter (mutation), but the function detects which env var name has a value set. The deleted code called this getEnvVarName, which was clearer. resolveEnvVarName or activeEnvVarName would eliminate the semantic mismatch between name and behavior.

💡 Suggestion - tools/cfl/internal/config/show_projection.go:104

projectValue is generic — it doesn't convey that this resolves a value through an env→file→default priority hierarchy and wraps it with source metadata. resolveShowValue or valueFromSources would make the domain intent clear without reading the body.

💡 Suggestion - tools/cfl/internal/present/detail.go:25

if full && space.Description != nil && space.Description.Plain != nil && space.Description.Plain.Value != "" — three nil guards obscure the single business question being asked: does this space have a renderable description? Extracting hasPlainDescription(space) would let the if full && hasPlainDescription(space) line read as intent rather than defensive mechanics.


Completed in 2m 16s | $1.98 | sonnet | daemon 0.2.132 | Glorfindel
Field Value
Model sonnet
Reviewers hybrid-synthesis, documentation:docs-reviewer, harness-engineering:harness-architecture-reviewer, harness-engineering:harness-enforcement-reviewer, harness-engineering:harness-knowledge-reviewer, harness-engineering:harness-self-documenting-code-reviewer, security:security-code-auditor
Engine claude · sonnet
Reviewed by pr-review-daemon · monit-pr-reviewer
Duration 2m 16s wall · 2m 12s compute (Reviewers: 1m 52s · Synthesis: 21s)
Cost $1.98 (estimated)
Tokens 373.7k in / 17.2k out
Turns 14

Per-workstream usage

Workstream Model In Out Cache read Cache create Cost
hybrid-synthesis sonnet 35.0k 1.1k 13.1k 21.8k (1h) $0.15
documentation:docs-reviewer sonnet 35.4k 1.4k 13.1k 22.3k (1h) $0.16
harness-engineering:harness-architecture-reviewer sonnet 60.4k 1.4k 13.1k 47.3k (1h) $0.31
harness-engineering:harness-enforcement-reviewer sonnet 62.0k 2.6k 13.1k 48.8k (1h) $0.34
harness-engineering:harness-knowledge-reviewer sonnet 61.5k 2.3k 13.1k 48.4k (1h) $0.33
harness-engineering:harness-self-documenting-code-reviewer sonnet 62.7k 6.7k 13.1k 49.6k (1h) $0.40
security:security-code-auditor sonnet 56.7k 1.5k 13.1k 43.5k (1h) $0.29

Re-reviews only run when @monit-reviewer is re-requested as a reviewer — push as many commits as you need, then re-request when ready. PRs targeting branches other than main, master are skipped, even when @monit-reviewer is re-requested.

Comment thread tools/cfl/internal/config/show_projection.go Outdated
Comment thread tools/cfl/internal/config/show_projection.go Outdated
Comment thread tools/cfl/internal/present/detail.go Outdated
@monit-reviewer monit-reviewer dismissed their stale review June 24, 2026 19:55

Superseded by updated review

@monit-reviewer monit-reviewer left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated PR Review

Reviewed commit: e0eb845 | Previous: 580e215 (incremental)

Summary

No issues found.

3 PR discussion threads considered.


Completed in 56s | $5.07 | sonnet | daemon 0.2.132 | Glorfindel
Field Value
Model sonnet
Mode Re-review · Cycle 2 · Session resumed
Reviewers hybrid-synthesis, documentation:docs-reviewer, harness-engineering:harness-architecture-reviewer, harness-engineering:harness-enforcement-reviewer, harness-engineering:harness-knowledge-reviewer, harness-engineering:harness-self-documenting-code-reviewer, security:security-code-auditor
Engine claude · sonnet
Reviewed by pr-review-daemon · monit-pr-reviewer
Duration 56s wall · 30s compute (Reviewers: 16s · Synthesis: 14s)
Cost $5.07 (estimated)
Tokens 973.2k in / 19.1k out
Turns 28

Per-workstream usage

Workstream Model In Out Cache read Cache create Cost
hybrid-synthesis sonnet 76.1k 1.5k 26.3k 49.8k (1h) $0.33
documentation:docs-reviewer sonnet 78.8k 1.6k 26.3k 52.5k (1h) $0.35
harness-engineering:harness-architecture-reviewer sonnet 154.5k 1.6k 26.3k 128.2k (1h) $0.80
harness-engineering:harness-enforcement-reviewer sonnet 159.2k 2.8k 26.3k 132.9k (1h) $0.85
harness-engineering:harness-knowledge-reviewer sonnet 157.9k 2.5k 26.3k 131.6k (1h) $0.83
harness-engineering:harness-self-documenting-code-reviewer sonnet 161.5k 6.9k 26.3k 135.2k (1h) $0.92
security:security-code-auditor sonnet 143.3k 1.7k 26.3k 117.0k (1h) $0.74
discussion-summarizer 41.9k 560 18.5k 23.4k (1h) $0.26

Re-reviews only run when @monit-reviewer is re-requested as a reviewer — push as many commits as you need, then re-request when ready. PRs targeting branches other than main, master are skipped, even when @monit-reviewer is re-requested.

@rianjs rianjs merged commit 3023f2e into main Jun 24, 2026
10 checks passed
@rianjs rianjs deleted the feat/433-cfl-detail-config-presenters branch June 24, 2026 20:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(cfl): migrate detail and config-show output to presenters for #271

2 participants