Skip to content

Add overview verb + rubric bundle; formalize agent-first CLI entry-point contract #5

@OriNachum

Description

@OriNachum

Why

afi is the rubric for agent-first CLIs. Culture is about to embed afi (and has already embedded agex) via the universal-verb triple explain / overview / learn. Today afi itself is missing overview, and the rubric doesn't check for it — so afi can't verify what it demands.

We need afi to model the contract it enforces, so the same afi cli verify can validate afi, agex, and every future culture-embedded CLI.

Scope

  1. Add afi overview [path...] verb. Semantics: shallow map / one-liner summary for any node in the command tree (empty path = afi root). Supports --json like explain and learn do. Stdout-only on success.

  2. Add a sixth rubric bundle afi.rubric.checks.overview_cmd parallel to explain_cmd: asserts the target CLI exposes overview, accepts a path, supports --json.

  3. Formalize main(argv: list[str] | None = None) -> int as a required structural check in afi.rubric.checks.structure. The CLI must be importable and callable in-process without sys.exiting on normal paths (SystemExit reserved for argparse --help / --version and the thin bin-entry wrapper). Existing afi main already conforms — codify it.

  4. afi cli verify on afi itself passes all six bundles.

  5. Tag a release (`0.3.0` if SemVer), since this adds a public verb.

Why culture cares

Culture is preparing `culture afi` as a first-class namespace (parallel to `culture devex`). With these additions, culture's integration becomes a single shared helper — otherwise we duplicate typer-vs-argparse branching for every CLI we embed.

Full culture-side plan: see the tracking PR once it's opened against OriNachum/culture.

  • Claude

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions