Skip to content

Add com.gorlix.project-skills to the catalog - #31

Draft
gorlix wants to merge 3 commits into
Paca-AI:masterfrom
gorlix:453-project-skills-plugin
Draft

Add com.gorlix.project-skills to the catalog#31
gorlix wants to merge 3 commits into
Paca-AI:masterfrom
gorlix:453-project-skills-plugin

Conversation

@gorlix

@gorlix gorlix commented Sep 2, 2026

Copy link
Copy Markdown

Summary

Adds com.gorlix.project-skills to catalog/plugins.json — a plugin that lets a Paca project register its own Agent Skills (agentskills.io format: SKILL.md, YAML frontmatter + body) via a dedicated CRUD HTTP API, backed by a project-scoped Postgres table.

Implements point 3 of Paca-AI/paca#453 ("a Paca project can register its own skills, as a plugin, zero core changes"), per the maintainer's explicit go-ahead on that issue.

Notable design decision (documented in full in the plugin's README)

Skill names created through this plugin are prefixed with the ecosystem's paca- convention, but are not wired into the plugin manifest's own skills.baseUrl/names mechanism. That mechanism is populated once, at install time, from a static tarball extracted to disk by services/api's Installer — a WASM plugin has no filesystem access at runtime, so there's no way to keep it in sync with skills a project's members create or edit live. This plugin instead serves its skills from its own /api/v1/plugins/com.gorlix.project-skills/projects/:projectId/skills routes.

Testing

  • go test -race ./... — 86.5% coverage, all passing.
  • golangci-lint run — clean.
  • Real TinyGo wasip1/wasm build (1.9MB).
  • Verified against a live docker compose -f deploy/docker-compose.dev.yml instance: full CRUD cycle over real HTTP (create with auto paca- prefix, 409 on duplicate, 400 on a reserved paca-trigger- name, list, get, patch, delete, 404 after delete) against the real Postgres-backed plugin schema. Also confirmed empirically that a skill created here does not leak into GET /api/v1/skills.
  • All three release artifact URLs (manifest.tar.gz, backend.tar.gz, migrations.tar.gz) verified to return HTTP 200 and correct byte sizes before opening this PR.
  • catalog/plugins.json validated with jq after the edit.

Type of Change

New catalog entry (marketplace listing) for a new third-party plugin.

Checklist

  • The change is focused and scoped (one new catalog entry, no other edits).
  • Artifact URLs point to immutable GitHub release assets, verified reachable.
  • name follows reverse-DNS notation and is stable.
  • version is semver and matches the release tag.

Lets a Paca project register its own Agent Skills (agentskills.io
format) via a dedicated plugin, backed by a project-scoped Postgres
table and served over the plugin's own HTTP routes. Implements point 3
of Paca-AI/paca#453.

Backend-only in this first release (no frontend/mcp/skills sections in
the manifest, so those artifact URLs are omitted per the catalog's own
per-surface-optional convention).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Skill bodies now link to real project Documents instead of storing
plain text, and the plugin ships a frontend (sidebar tree + metadata
page) for the first time — adds frontend_tar_gz_url.
Adds mcp_tar_gz_url — the plugin now ships MCP tools
(project_skills_list, project_skills_get).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant