README standout features + TUI-first restructure (demo, doctor)#9
Merged
Conversation
…dges
Four additions to make the repo land harder on first read:
- FedRAMP 20x KSI coverage in the README (badge + family table + named gaps),
generated from `paramify ksi` by tools/gen_ksi_coverage.py between markers so
it never drifts (SEC-27 "generate the rot-prone parts" pattern).
- Zero-credential demo: a synthetic `demo_hello` fetcher (new `demo` category)
+ examples/demo.yaml, so `paramify run examples/demo.yaml` exercises the whole
collect → envelope pipeline with no cloud account. Doubles as a CI smoke
fixture (SEC-34/SEC-38).
- `paramify doctor [manifest]` (api.doctor + CLI): preflights Python version,
the external CLIs each category needs (aws/jq, kubectl, checkov/git), and —
with a manifest — which secret env vars are set; exits non-zero on gaps.
- README polish: a badge row (CI/license/python/version) and a "Drive it with
an AI agent" section leaning on --json everywhere, the {ok,errors} manifest
contract, and the shipped .claude/skills.
Tests: EXPECTED_TOP updated (adds ksi + doctor) + two doctor tests. 209 pass;
ruff + mypy clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Reorder the "how to use it" narrative so the interactive TUI leads, then the AI-agent path, then the manual CLI — consolidating the scattered usage bits (command surface, doctor, manifest building, upload) under one "Using the CLI" section and slimming "How it runs" to architecture. Also, per review: - Remove the FedRAMP 20x coverage section (badge + family table + generated block). We're not yet confident enough in the KSI mapping to publish it; the generator (tools/gen_ksi_coverage.py) now parks gracefully when the README markers are absent, ready to resume later. `paramify ksi` still shows live numbers internally. - Remove the "Why the design is strict" section; preserve the pre-1.0 Status note by relocating it to the end of "How it runs". Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Makes the README land harder on first read and adds two small showcase features. Builds on the merged CI, versioning, and KSI work.
README
doctor, manifest building, upload) are consolidated under "Using the CLI".--jsoneverywhere, the{ok, errors}manifest contract, and the shipped.claude/skills.Features
demo_hellofetcher (newdemocategory) +examples/demo.yaml, soparamify run examples/demo.yamlexercises the whole collect → envelope pipeline with no cloud account. Doubles as a CI smoke fixture.paramify doctor [manifest](api.doctor+ CLI): preflights Python version, the external CLIs each category needs (aws/jq, kubectl, checkov/git), and — with a manifest — whether its secret env vars are set; exits non-zero on gaps.Deliberately parked
tools/gen_ksi_coverage.pyis kept but parks gracefully when the README markers are absent, ready to resume later.paramify ksistill computes live numbers.Tests
tests/test_cli.py:EXPECTED_TOPaddsksi+doctor; two newdoctortests.🤖 Generated with Claude Code