Skip to content

fix: Register repoman plugin and refine entrypoint UX - #50

Merged
rubambiza merged 4 commits into
rossoctl:mainfrom
rubambiza:fix/marketplace-manifest-repoman
Oct 14, 2026
Merged

rubambiza merged 4 commits into
rossoctl:mainfrom
rubambiza:fix/marketplace-manifest-repoman

Conversation

@rubambiza

Copy link
Copy Markdown
Contributor

Summary

Two fixes to make the /repoman entrypoint installable and the setup flow smoother, found while dogfooding the merged skill.

1. Register the repoman plugin (demo blocker). The marketplace manifest had no repoman entry, so the merged skill could not be installed or invoked as a plugin. The manifest also carried a broken repo-sync skills array (missing ]},) introduced by an earlier merge (064eb0b), which made the whole file invalid JSON. This adds the repoman stanza and repairs the repo-sync break so the manifest parses.

2. Refine the entrypoint SKILL.md from dogfooding the first-time setup flow.

Changes

  • .claude-plugin/marketplace.json: add the repoman plugin stanza; close the unterminated repo-sync skills array (pre-existing merge regression from 064eb0b). Manifest is valid JSON again.
  • skills/repoman/SKILL.md:
    • Requirements parser is a sourced library — state source-then-call explicitly in both "Where the scripts live" and the Q3 requirement wiring, so a driver never executes it directly and silently captures empty requirements (which would defeat the capability gate). Pairs with fix: Fail loud when repoman-requirements.sh is executed automation#113, which makes the script fail loud on direct execution.
    • Presentation section — friendly program display names (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).
    • Note that program descriptions in SKILL.md frontmatter are YAML folded block scalars, not inline values.

Testing

  • Manifest validates as JSON; all nine skills paths resolve to real dirs; repoman present.
  • skills/repoman/SKILL.md still parses via repoman_parse_requirements (its own Requirements block unchanged).
  • Verified end-to-end by dogfooding: fresh /repoman install from this branch drove a full first-time setup (enroll repos, enable programs with correct requirement wiring) and run-path reconciliation.

Scope

The pr-review description 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

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>
@rubambiza rubambiza added the ready-for-ai-review Request automated AI code review from clawgenti label Oct 14, 2026

@clawgenti clawgenti left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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 automation main, direct execution is silent (see inline comment).

Reviewed by clawgenti using the github-pr-review skill

Comment thread skills/repoman/SKILL.md Outdated
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>
@rubambiza rubambiza added ready-for-ai-review Request automated AI code review from clawgenti and removed ready-for-ai-review Request automated AI code review from clawgenti labels Oct 14, 2026

@clawgenti clawgenti left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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

@rubambiza rubambiza self-assigned this Oct 14, 2026
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 clawgenti left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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

@rubambiza rubambiza added ready-for-human-review AI review passed, ready for human reviewer and removed ready-for-ai-review Request automated AI code review from clawgenti labels Oct 14, 2026

@mrsabath mrsabath left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Verified end-to-end at HEAD (09fddbd):

  • Manifest repair: main's .claude-plugin/marketplace.json fails JSON parsing (unterminated repo-sync array); at HEAD it parses cleanly — 9 plugins, repoman stanza present, and all 17 skills paths resolve to real directories.
  • README: the new repoman row links to skills/repoman/, which exists; description matches the manifest stanza.
  • Parser guidance: accurate against automation main — repoman-requirements.sh defines repoman_parse_requirements with 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_PROGRAMS allowlist in repoman-setup.sh exactly (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.md descriptions use description: >- 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>
@rubambiza
rubambiza merged commit 8789c7a into rossoctl:main Oct 14, 2026
2 checks passed
@rubambiza
rubambiza deleted the fix/marketplace-manifest-repoman branch October 14, 2026 18:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-human-review AI review passed, ready for human reviewer

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants