Skip to content

[Feature] Support non-GitHub forges in dev plugin workflows #8

@codeasier

Description

@codeasier

Problem

The plugins/dev workflows are currently only partially forge-agnostic.

Several skills in plugins/dev are tightly coupled to GitHub-specific conventions and gh CLI behavior:

  • plugins/dev/skills/issue-submit/SKILL.md hardcodes gh api repos/.../contents/.github/ISSUE_TEMPLATE and gh issue create
  • plugins/dev/skills/pr-followup/SKILL.md explicitly instructs the workflow to reason about gh semantics and reply to reviews using gh
  • plugins/dev/skills/env-setup/SKILL.md already acknowledges that a gc command may exist, but that support stops at permissions/environment setup and is not integrated into issue/PR workflows

This makes the plugin work well for GitHub repositories, but fragile or unusable for other forges such as GitCode. In practice, the current workflows can mis-detect commands, assume GitHub-only API shapes, and fail to complete common follow-up actions such as reading review comments, replying, or submitting updates.

Proposed Solution

Introduce a minimal forge/provider abstraction for the plugins/dev remote collaboration workflows.

A possible approach:

  1. Detect the forge/provider from repository remote host or explicit user input
  2. Resolve the correct CLI/binary for that provider (gh, gc, etc.), distinguishing aliases from real executables
  3. Normalize a small set of operations behind a provider adapter, for example:
    • fetch issue templates
    • create issue
    • fetch PR/MR metadata
    • fetch review/thread comments
    • reply to review/thread
    • check mergeability / checks / status
  4. Keep the existing skill UX and SOP structure, but route remote operations through the provider adapter
  5. Make issue-submit and pr-followup the first consumers; keep local-only workflows such as env-setup and worktree-clean mostly unchanged

This would allow the dev plugin to support GitHub first, while adding GitCode and potentially GitLab support without rewriting each skill independently.

Alternatives Considered

  1. Patch each skill independently with ad-hoc if github / if gitcode branches

    • Simpler short term
    • Likely to duplicate logic and drift over time
  2. Keep the plugin GitHub-only and document that limitation

    • Lowest implementation cost
    • Does not match actual user workflows where non-GitHub forges are already in use
  3. Build a fully generic forge SDK abstraction from the start

    • Cleaner long term
    • Probably too large for the current plugin scope

A minimal adapter layer seems like the best tradeoff.

Additional Context

The current repository itself is hosted on GitHub (origin points to github.com/codeasier/claude-codeasier), but the dev plugin is intended to help with broader development workflows, and recent usage already exposed gaps when trying to use /dev:pr-followup against a GitCode PR with the gc CLI.

Relevant coupling points observed in the current codebase:

  • plugins/dev/skills/issue-submit/SKILL.md:16
  • plugins/dev/skills/issue-submit/SKILL.md:97
  • plugins/dev/skills/pr-followup/SKILL.md:39
  • plugins/dev/skills/pr-followup/SKILL.md:49
  • plugins/dev/skills/env-setup/SKILL.md:114

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions