Skip to content

docs: explain the value Base-CLI adds to a consumer - #31

Merged
codeforester merged 2 commits into
mainfrom
documentation/18-20260918-docs-make-the-case-for-adopting-base-cli-value-proposition-w
Sep 19, 2026
Merged

codeforester merged 2 commits into
mainfrom
documentation/18-20260918-docs-make-the-case-for-adopting-base-cli-value-proposition-w

Conversation

@codeforester

Copy link
Copy Markdown
Contributor

Fixes #18

Comment thread docs/why-base-cli.md
while the consumer keeps its command tree, configuration policy, and domain
behavior.

| Shared concern | Northstar example | What the framework supplies |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Content-completeness gap vs. the linked issue. Issue #18's suggested fix asked for a concrete before/after of cli.py: "the ~30 lines of cli.py that produce a production-shaped CLI, annotated to mark which behavior would otherwise be hand-written" (or at minimum a "without base-cli you would also write ..." callout). This table lists Northstar examples and framework capabilities in the abstract, but never ties a specific behavior to the lines of cli.py/profile.py a reader would otherwise have had to write themselves (e.g. log setup, temp/state path plumbing, redaction wiring, envelope serialization). A reader still can't tell, line-by-line, which parts of cli.py represent effort base-cli is saving them versus ordinary Click code — the specific gap the issue called out.

Comment thread docs/why-base-cli.md Outdated
| Diagnostics | `--debug --log-file ... release reconcile` | Lifecycle logging, log placement, and registered sensitive-argument redaction. |
| Per-run files and cleanup | `release reconcile` | Managed runtime/temp paths and cleanup hooks; Northstar owns its state record. |

## What this demo still owns

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Duplication risk with README's existing "Framework boundary" section. README.md:66-72 (unchanged by this PR) already states: "Base-CLI owns the invocation lifecycle, context, logging, runtime paths, cleanup, and structured output. Northstar owns the Click command tree, service fixture schema, release planning policy, and domain-facing messages." This "What this demo still owns" section restates the same ownership boundary in different words, with no cross-reference between the two. The two descriptions can now drift out of sync as the codebase evolves (e.g. if a new lifecycle option or consumer-owned setting is added, only one of the two places is likely to get updated). Consider having one of the two sections link to the other as the source of truth, or trimming this section to defer to the existing "Framework boundary" write-up.

Comment thread docs/why-base-cli.md Outdated
| Human and machine output | `northstar status --format json` | Public record renderers and stable JSON records. |
| Automation envelope | `northstar --json status --format json` | A versioned success/error envelope and the command's exit status. |
| Safe state-changing workflow | `northstar --dry-run release reconcile` | A lifecycle dry-run flag and consistent invocation context; Northstar decides what its local demo operation means. |
| Diagnostics | `--debug --log-file ... release reconcile` | Lifecycle logging, log placement, and registered sensitive-argument redaction. |

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Minor inconsistency: this row's example command, --debug --log-file ... release reconcile, omits the northstar prefix present in every sibling row (northstar status --format json, northstar --json status --format json, northstar --dry-run release reconcile). Worth prefixing with northstar for consistency, e.g. northstar --debug --log-file ... release reconcile.

@codeforester
codeforester merged commit 33384cf into main Sep 19, 2026
11 checks passed
@codeforester
codeforester deleted the documentation/18-20260918-docs-make-the-case-for-adopting-base-cli-value-proposition-w branch September 19, 2026 11:00
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.

Docs: make the case for adopting base-cli (value proposition + what it replaces)

1 participant