doc/plans/2026-03-14-skills-ui-product-plan.md
Status: Proposed Date: 2026-03-14 Audience: Product and engineering Related:
doc/plans/2026-03-13-company-import-export-v2.mddoc/plans/2026-03-14-adapter-skill-sync-rollout.mddocs/companies/companies-spec.mdui/src/pages/AgentDetail.tsxThis document defines the product and UI plan for skill management in Paperclip.
The goal is to make skills understandable and manageable in the website without pretending that all adapters behave the same way.
This plan assumes:
SKILL.md remains Agent Skills compatibleskills.sh compatibility is a V1 requirementThere is already a first-pass agent-level skill sync UI on AgentDetail.
Today it supports:
Current limitations:
For V1, this plan assumes the following product decisions are already made:
skills.sh compatibility is required.AGENTS.md is by shortname or slug.Paperclip should treat skills at two scopes:
These are reusable skills known to the company.
Examples:
skills.sh-compatible repoThese should have:
These are skill attachments for a specific agent.
Each attachment should have:
Agent attachments should normally reference skills by shortname or slug, for example:
reviewreact-best-practicesnot by noisy relative file path.
The UI should support these jobs cleanly:
The product should have two primary skill surfaces.
Add a company-level page, likely:
/companies/:companyId/skillsPurpose:
/companies/:companyId/skillsWhen the company has no managed skills:
skills.sh / Agent Skills compatibilityImport from GitHub and Import from folderEach skill row should show:
Suggested source states:
Suggested compatibility states:
Suggested trust states:
Suggested list affordances:
Allow:
Future:
companies.shskills.shV1 requirement:
skills.sh-compatible source should work without requiring a Paperclip-specific package layoutEach skill should have a detail view showing:
SKILL.mdRecommended route:
/companies/:companyId/skills/:skillIdRecommended sections:
Each company skill should show which agents use it.
Suggested columns:
Keep and evolve the existing AgentDetail skill sync UI, but move it out of configuration.
Purpose:
AGENTS.md/agents/:agentId/skillsThe intended agent-level tab model becomes:
dashboardconfigurationskillsrunsThis is preferable to hiding skills inside configuration because:
The Skills tab should have three stacked sections:
Summary should show:
Show company-managed skills attached to the agent.
Each row should show:
Each row should support:
Show skills reported by the adapter that are not company-managed.
This matters because Codex and similar adapters may already have local skills that Paperclip did not install.
These should be clearly marked:
Each external row should support:
Support:
Future:
Recommended footer actions:
Sync skillsResetRefresh adapter stateEach skill attachment should have a user-facing state.
Suggested states:
in_syncdesired_onlyexternaldriftedunmanagedunknownDefinitions:
in_sync: desired and actual matchdesired_only: Paperclip wants it, adapter does not show it yetexternal: adapter has it but Paperclip does not manage itdrifted: adapter has a conflicting or unexpected version/locationunmanaged: adapter does not support sync, Paperclip only tracks desired stateunknown: adapter read failed or state cannot be trustedSuggested badge copy:
In syncNeeds syncExternalDriftedUnmanagedUnknownThe UI should not describe all adapters the same way.
Example:
Language:
Example:
Language:
Language:
This state should still allow:
Some adapters may be able to list skills but not mutate them.
Language:
Recommended navigation:
SkillsSkills as its own tabRecommended separation:
/companies/:companyId/skills/companies/:companyId/skills/:skillId/agents/:agentId/skillsRecommended entry points:
SkillsSkillsSkill UI and package portability should meet in the company skill library.
Import behavior:
SKILL.md content should create or update company skillsAGENTS.md shortname associations.paperclip.yaml may add Paperclip-specific fidelity, but should not replace the base shortname association modelExport behavior:
AGENTS.md should emit skill associations by shortname or slug.paperclip.yaml may add Paperclip-specific skill fidelity later if needed, but should not be required for ordinary agent-to-skill associationV1 workflows should support:
Import preview for skills should show:
V1 should support:
AGENTS.md contains shortname skill associationsSKILL.mdOut of scope for V1:
This plan implies a clean split in backend concepts.
Paperclip should have a company-scoped skill model or managed package model representing:
Paperclip should separately store:
Adapter reads should return:
This already exists in rough form and should be the basis for the UI.
The complete UI implies these API surfaces:
Existing agent-level skill sync APIs can remain the base for the agent tab. The company-level library APIs still need to be designed and implemented.
Header:
skills.shBody:
Secondary content:
Header:
Sections:
SKILL.mdActions:
Header:
Body:
States:
States:
States:
Suggested V1 policy:
Goals:
AgentDetail tabGoals:
skills.sh-compatible import pathGoals:
AGENTS.md shortnamesGoals:
Goals:
The next product step should be:
Skills tabSkills page as the library and package-management surfaceAGENTS.mdThat gives Paperclip one coherent skill story instead of forcing package management, adapter sync, and agent configuration into the same screen.