Skip to content

t136: Plugin System for Private Extension Repos #496

@marcusquinn

Description

@marcusquinn

Task ID: t136 | Status: open | Estimate: ~1d (ai:6h test:3h read:3h)
Logged: 2026-02-07
Tags: plan architecture plugins

Subtasks

Notes

Namespaced plugin architecture (pro.md + pro/) to avoid clashes. Plugin AGENTS.md points to main framework. Minimal CI (local linting only) for private repos. aidevops update deploys main + all plugins. Open questions: license (MIT vs proprietary), Gitea Actions availability, plugin deploy order, subagent index strategy.

Plan: Purpose

Create a plugin architecture for aidevops that allows private extension repos (aidevops-pro, aidevops-anon) to overlay additional agents and scripts onto the base framework. Plugins are git repos that extend aidevops without modifying the core, enabling tiered access (public/pro/private) and fast evolution of specialized features.

Plan: Progress
  • (2026-02-07) Phase 1: Add plugin support to .aidevops.json schema ~1h (t136.1)
    • Add plugin field with name, base_repo, namespace
    • Update aidevops init to detect and configure plugin repos
    • Add features: ["plugin"] option
  • (2026-02-07) Phase 2: Add plugins.json config and CLI commands ~2h (t136.2)
    • Create ~/.config/aidevops/plugins.json schema
    • Add aidevops plugin add/list/enable/disable/remove/update commands
    • Support GitHub and Gitea URLs
  • (2026-02-07) Phase 3: Extend setup.sh to deploy plugins ~2h (t136.3)
    • Add deploy_plugins() function after deploy_aidevops_agents()
    • Respect namespace (deploy to ~/.aidevops/agents/{namespace}/)
    • Handle script prefix convention ({namespace}-*.sh)
  • (2026-02-07) Phase 4: Create plugin template ~1h (t136.4)
    • aidevops plugin create <name> scaffolds structure
    • Template AGENTS.md, README.md, .aidevops.json, .github/workflows/ci.yml
    • Minimal GHA (ShellCheck + Secretlint + Markdownlint)
  • (2026-02-07) Phase 5: Scaffold aidevops-pro and aidevops-anon repos ~2h (t136.5)
    • Create repos on GitHub and Gitea
    • Initialize with plugin template
    • Test full workflow: clone → init → update → verify deployment
Plan: Decision Log
  • Decision: Namespaced directories (pro.md + pro/) not overlay
    Rationale: Overlay model causes collisions if main adds same path later. Namespace guarantees no conflicts.
    Date: 2026-02-07
  • Decision: Plugin AGENTS.md points to main framework, not duplicates
    Rationale: Single source of truth for framework docs. Plugins only document their additions.
    Date: 2026-02-07
  • Decision: Minimal CI for private repos (local linting only)
    Rationale: SonarCloud/Codacy/CodeRabbit require public repos for free tier. ShellCheck/Secretlint/Markdownlint work locally.
    Date: 2026-02-07
  • Decision: aidevops init detects plugin repos via .aidevops.json plugin field
    Rationale: Consistent initialization, AI assistants know it's a plugin context.
    Date: 2026-02-07

Synced from TODO.md by issue-sync-helper.sh

Metadata

Metadata

Assignees

No one assigned

    Labels

    architectureAuto-created from TODO.md tagplanAuto-created from TODO.md tagpluginsPlugin system and extensions

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions