{"contract_version":"1.2.0","rubric_version":"1.0.0","archetype_version":"1.1.0","skill_version":"0.2.0","judge_model":"sonnet","judge_effort":"medium","commit_sha":"0f2b57a952000cb3593b38811cad6d3187293982","filed_at":"2026-07-21T05:33:49.928Z","repo":{"owner":"Katenary","name":"katenary","default_branch":"master"},"purpose":{"what_its_for":["convert docker-compose files to Helm charts","label-driven Kubernetes manifest generation","CI-friendly chart scaffolding"],"purpose_statement":"Katenary converts docker-compose/podman-compose files into working Helm Charts using labels to control Kubernetes-specific behavior.","audience":"developers deploying containerized apps to Kubernetes who already maintain a compose file and want a Helm chart without hand-writing one","category_candidates":["kubernetes-tooling","helm","docker-compose","devops-cli","manifest-generation"],"archetype":"cli-tool"},"scores":{"axes":{"concept":{"score":7,"grade":"A","rationale_ref":"complete-files"},"usefulness":{"score":7,"grade":"A","rationale_ref":"vitals-readme"},"ergonomics":{"score":6.5,"grade":"BBB","rationale_ref":"vitals-readme"},"maturity":{"score":5.5,"grade":"BB","rationale_ref":"test-reality"},"longevity":{"score":4,"grade":"B","rationale_ref":"health-static"},"openness":{"score":4.5,"grade":"B","rationale_ref":"health-static"},"setup_friction":{"score":6.5,"grade":"BBB","rationale_ref":"vitals-readme"},"issue_health":{"score":0,"grade":"CC","rationale_ref":"coverage","na":true,"na_reason":"health-static issue section returned unknown/0-sampled values for first response and close time, and 0 open issues logged — no usable signal to score against"},"supply_chain":{"score":5,"grade":"BB","rationale_ref":"probe-cve"},"hype_substance":{"score":5.5,"grade":"BB","rationale_ref":"probe-claim-2"}},"rollups":{"dependability":4.9,"craftsmanship":6.2,"docs":6.2,"trust":5.1},"composite":5.9,"grade":"BB","recommendation":"HOLD","confidence":"medium"},"summary":{"context_line":"Audited from a 0k-token evidence dossier; 4 files read, 10 probes answered.","intro":["Katenary reads labels off a docker-compose file and emits a working Helm chart, the label vocabulary [vitals-readme] doing the work a full DSL would in a heavier tool. The generator code is readable and narrowly scoped [complete-files], but the project has already left GitHub for a self-hosted Gitea mirror [vitals-readme], and the health snapshot behind that mirror is thin.","The central tension is trust in a moving target: a small, capable CLI whose canonical home, contributor base, and issue-tracking discipline are all hard to verify from here."],"knocks":[{"lead":"The project has already migrated off GitHub, and this mirror is a read-only shell.","text":"The README banner and a CI workflow that auto-rewrites the mirror's README both confirm the real repository, issues, and PRs now live at repo.katenary.io [vitals-readme]. A stale PR-closing bot on this mirror [manifests-ci] means GitHub-side activity metrics are meaningless.","refs":["vitals-readme","manifests-ci"]},{"lead":"Issue and contribution health can't be read here at all.","text":"The health digest for this mirror shows 0 open issues and unknown response/close times [health-static], which is a mirror artifact, not evidence the upstream project is quiet.","refs":["health-static"]},{"lead":"Contributor concentration is total.","text":"Seven contributors with 100% top-10 concentration [health-static] means bus factor risk sits with effectively one maintainer, a real concern for a tool teams would wire into a deploy pipeline.","refs":["health-static"]},{"lead":"The dependency scan surfaces unresolved high-severity findings.","text":"Two high-severity CVEs turn up in the lockfile-resolved scan [probe-cve] with no visible engagement in the dossier's evidence, which is the kind of gap that should cost points rather than be waved off.","refs":["probe-cve"]}],"holds_up":[{"lead":"The label-driven conversion model is a coherent fit for the problem.","text":"Rather than inventing a new config format, Katenary layers Kubernetes concerns (ingress, cronjobs, secrets) onto existing compose labels [complete-files], keeping the common path label-free per the README [vitals-readme].","refs":["complete-files","vitals-readme"]},{"lead":"The generator code reads cleanly for its size.","text":"Ingress and CronJob generation are self-contained, single-purpose files with clear Yaml()/Filename() interfaces [complete-files], and the most graph-central file is directly exercised by tests [probe-top-tested].","refs":["complete-files","probe-top-tested"]},{"lead":"Test coverage of utility logic is real, not decorative.","text":"Table-driven Go tests with genuine assertions cover the templating and naming helpers [test-reality], and the broader assertion probe finds real checks across 30 test files [probe-assertions].","refs":["test-reality","probe-assertions"]},{"lead":"Distribution is taken seriously for a CLI.","text":"Linux package repos, a Windows installer, and a documented install script all ship alongside binary releases [vitals-readme], lowering the discovery-to-first-success cost this archetype is judged on.","refs":["vitals-readme"]}],"bottom_line":"A capable, well-scoped compose-to-Helm converter, but this GitHub copy is a dead mirror of a project whose real health lives elsewhere."},"use_cases":{"reach_for_it":["teams that already model their app in docker-compose and want a Helm chart without hand-authoring templates","projects needing per-service Kubernetes features (ingress, cronjobs, secrets) expressed via lightweight labels"],"look_elsewhere":[{"when":"you need an actively-triaged GitHub issue tracker and PR flow","instead":"check the real project home at repo.katenary.io rather than this mirror"},{"when":"you require a chart-generation tool backed by more than a handful of maintainers","instead":"an established Helm chart or a hand-written chart with team ownership"}]},"alternatives_note":"Consider Helm's own `helm create` scaffolding or Kompose for compose-to-Kubernetes conversion as lower-lock-in baselines."}