Repository navigation
fix: Register repoman plugin and refine entrypoint UX - #50
Conversation
The marketplace manifest had no `repoman` entry, so the merged /repoman skill could not be installed or invoked as a plugin. It also carried a broken `repo-sync` skills array (missing `]},`) from an earlier merge (064eb0b), which made the whole manifest invalid JSON. Add the repoman plugin stanza and repair the repo-sync break so the file parses. Refine the entrypoint SKILL.md from dogfooding the setup flow: - Requirements parser is a sourced library: say source-then-call explicitly in both 'Where the scripts live' and the Q3 wiring, so a driver never executes it and silently captures empty requirements. - Add a Presentation section: friendly program display names with fuzzy-match-to-canonical resolution, pacing guidance (terse missing->input->next prompts, internals only on error), and a choice-UI note (prefer a host structured-select widget; mind its option cap). - Note that program descriptions in SKILL.md frontmatter are YAML folded block scalars, not inline values. Assisted-By: Claude Code (Anthropic AI) <noreply@anthropic.com> Signed-off-by: Gloire Rubambiza <gloire@ibm.com>
clawgenti
left a comment
There was a problem hiding this comment.
Repairs the marketplace manifest (verified: main fails JSON parsing on the unterminated repo-sync array; at HEAD it is valid JSON, 9 plugins, all 17 skill paths resolving) and adds the missing repoman stanza, plus solid SKILL.md refinements — source-then-call parser guidance and a friendly-name→canonical mapping consistent with KNOWN_PROGRAMS (Q3/Q4 references check out). CI green, DCO signed.
Findings
- suggestion
skills/repoman/SKILL.md:57— the "fails loud on direct execution" claim depends on the still-open rossoctl/automation#113; on current automationmain, direct execution is silent (see inline comment).
Reviewed by clawgenti using the github-pr-review skill
clawgenti flagged that the 'fails loud on direct execution' claim depends on rossoctl/automation#113, which is not yet merged. Reframe both the 'Where the scripts live' bullet and the Q3 wiring so the guidance is honest regardless of merge order: a direct run never emits JSON -- post-#113 it fails loud, before that it exits silently empty -- and sourcing is the only correct path either way. Assisted-By: Claude Code (Anthropic AI) <noreply@anthropic.com> Signed-off-by: Gloire Rubambiza <gloire@ibm.com>
clawgenti
left a comment
There was a problem hiding this comment.
Follow-up commit 735fe8d resolves the prior review's only finding: the parser guidance now accurately describes both merge-order states of rossoctl/automation#113 (verified — #113 still open; automation main currently exits 0 silently on direct execution; the #113 patch fails loud with matching guidance). Manifest repair, repoman registration, and the friendly-name → KNOWN_PROGRAMS mapping re-verified at HEAD (valid JSON, 9 plugins, all 17 skill paths resolving; main confirmed broken).
All checks pass. Ready for human review.
Reviewed by clawgenti using the github-pr-review skill
The skills table omitted repoman, which this PR registers as a plugin. Add it as the first row (it is the primary entry point users invoke), with a description matching the marketplace manifest stanza. Assisted-By: Claude Code (Anthropic AI) <noreply@anthropic.com> Signed-off-by: Gloire Rubambiza <gloire@ibm.com>
clawgenti
left a comment
There was a problem hiding this comment.
Commit 09fddbd adds the README row for the repoman entrypoint — description matches the manifest stanza and the skills/repoman/ link resolves. Re-verified at HEAD: manifest is valid JSON with 9 plugins and all 17 skill paths resolving (main still fails to parse on the unterminated repo-sync array), DCO 3/3, CI green, and the sourced-library parser guidance still matches automation main (repoman-requirements.sh defines the function only; rossoctl/automation#113 remains open).
All checks pass. Ready for human review.
Reviewed by clawgenti using the github-pr-review skill
mrsabath
left a comment
There was a problem hiding this comment.
Verified end-to-end at HEAD (09fddbd):
- Manifest repair:
main's.claude-plugin/marketplace.jsonfails JSON parsing (unterminatedrepo-syncarray); at HEAD it parses cleanly — 9 plugins,repomanstanza present, and all 17skillspaths resolve to real directories. - README: the new
repomanrow links toskills/repoman/, which exists; description matches the manifest stanza. - Parser guidance: accurate against automation
main—repoman-requirements.shdefinesrepoman_parse_requirementswith no top-level execution, so a direct run exits 0 with empty output exactly as described; rossoctl/automation#113 is still open, and the doc honestly frames both merge-order states. - Friendly-name table: matches the
KNOWN_PROGRAMSallowlist inrepoman-setup.shexactly (all 5 canonical tokens), and the writer validates canonical tokens, so the resolve-before-writer-call rule is the right guard. - Folded-scalar note: confirmed — program
SKILL.mddescriptions usedescription: >-blocks. - SKILL.md Requirements block at HEAD is unchanged and still valid.
Commits 3/3 signed-off with Assisted-By; DCO and title checks green. Clean review — approving.
Add an 'Updating' subsection with the marketplace-update and plugin-update commands so existing users can pick up changes, alongside the existing add + install steps. Change the install example from a concrete skill name to <plugin-name>, and note that plugin names are the marketplace-declared names (which can differ from per-skill directory names) and that installing one plugin does not install the others. Assisted-By: Claude Code (Anthropic AI) <noreply@anthropic.com> Signed-off-by: Gloire Rubambiza <gloire@ibm.com>
Summary
Two fixes to make the
/repomanentrypoint installable and the setup flow smoother, found while dogfooding the merged skill.1. Register the
repomanplugin (demo blocker). The marketplace manifest had norepomanentry, so the merged skill could not be installed or invoked as a plugin. The manifest also carried a brokenrepo-syncskills array (missing]},) introduced by an earlier merge (064eb0b), which made the whole file invalid JSON. This adds therepomanstanza and repairs therepo-syncbreak so the manifest parses.2. Refine the entrypoint SKILL.md from dogfooding the first-time setup flow.
Changes
.claude-plugin/marketplace.json: add therepomanplugin stanza; close the unterminatedrepo-syncskills array (pre-existing merge regression from 064eb0b). Manifest is valid JSON again.skills/repoman/SKILL.md:Link-Health-Manager, …) with fuzzy-match-to-canonical resolution before any writer call; pacing guidance (terse "missing → input → next" prompts, internals surfaced only on error); choice-UI note (prefer a host structured-select widget, mind its option cap).SKILL.mdfrontmatter are YAML folded block scalars, not inline values.Testing
skillspaths resolve to real dirs;repomanpresent.skills/repoman/SKILL.mdstill parses viarepoman_parse_requirements(its own Requirements block unchanged)./repomaninstall from this branch drove a full first-time setup (enroll repos, enable programs with correct requirement wiring) and run-path reconciliation.Scope
The
pr-reviewdescription still leads with an adjective rather than a verb; standardizing descriptions touches other programs' frontmatter and is deferred to its own PR. The bundle-vs-automation-checkout question for the parser is deferred to the run-path/architecture work.Assisted-By: Claude Code