Title: feat: support installing standalone skills from flat repos (npx skills ecosystem) · Issue #232 · EntityProcess/allagents · GitHub
Open Graph Title: feat: support installing standalone skills from flat repos (npx skills ecosystem) · Issue #232 · EntityProcess/allagents
X Title: feat: support installing standalone skills from flat repos (npx skills ecosystem) · Issue #232 · EntityProcess/allagents
Description: Context When implementing #228, we discovered a gap: allagents skills add
Open Graph Description: Context When implementing #228, we discovered a gap: allagents skills add
X Description: Context When implementing #228, we discovered a gap: allagents skills add <skill> --from <source> only works when the source repo uses the allagents plugin structure (skills/<skill-n...
Opengraph URL: https://github.com/EntityProcess/allagents/issues/232
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"feat: support installing standalone skills from flat repos (npx skills ecosystem)","articleBody":"## Context\n\nWhen implementing [#228](https://github.com/EntityProcess/allagents/pull/231), we discovered a gap: `allagents skills add \u003cskill\u003e --from \u003csource\u003e` only works when the source repo uses the allagents plugin structure (`skills/\u003cskill-name\u003e/` subdirectories). It silently fails on flat repos.\n\n## The Problem\n\n`npx skills` installs skills from repos that contain `SKILL.md` files directly (flat structure):\n```\nvercel-labs/agent-skills/\n├── vercel-react-best-practices/SKILL.md\n├── vercel-nextjs-skills/SKILL.md\n└── ...\n```\n\n`allagents` expects:\n```\nplugin-repo/\n└── skills/\n ├── skill-name/ ← directory, not a flat file\n └── ...\n```\n\nSo `allagents skills add vercel-react-best-practices --from vercel-labs/agent-skills` installs the plugin but finds no skills, because there is no `skills/` subfolder.\n\n## Why the Current Schema Doesn't Cover This\n\n`enabledSkills`/`disabledSkills` track skills as `pluginName:skillName` — they require a plugin entry in `workspace.yaml`. A standalone `SKILL.md` file has no plugin to anchor to.\n\n## Proposed Solution\n\nTwo options to evaluate:\n\n### Option A — Auto-wrap\nWhen `--from` is used and the installed plugin has no `skills/` directory, scan the repo root for `SKILL.md` files and auto-create synthetic skill entries. No schema change needed.\n\n### Option B — `standaloneSkills` schema addition\nAdd a new top-level array to `workspace.yaml`:\n```yaml\nstandaloneSkills:\n - source: \"github:vercel-labs/agent-skills/vercel-react-best-practices\"\n name: vercel-react-best-practices\n```\nThis is more explicit and composable but requires a schema change and new sync logic.\n\n## Acceptance Criteria\n\n- [ ] `allagents skills add vercel-react-best-practices --from vercel-labs/agent-skills` works\n- [ ] Skills from flat repos are synced to configured agent directories \n- [ ] `allagents skills list` shows them alongside plugin-based skills\n- [ ] `allagents skills remove` can remove them\n- [ ] Backwards compatible with existing `disabledSkills`/`enabledSkills` schema","author":{"url":"https://github.com/christso","@type":"Person","name":"christso"},"datePublished":"2026-03-13T11:44:14.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/232/allagents/issues/232"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:a1d4bf27-953f-fc21-3429-399ead88fb62 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | D92C:37AFAD:75095E:9EB3BF:6A4D69C5 |
| html-safe-nonce | f357b3f37f36af735ea1b90cf7e8c57bd4341d864ca9c7c92474ec2cf6c9df51 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEOTJDOjM3QUZBRDo3NTA5NUU6OUVCM0JGOjZBNEQ2OUM1IiwidmlzaXRvcl9pZCI6IjQwMjE2MTcwNjM0NjIwMDUxODkiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 8741fca943c43c26fa49b84facdf5ad06f4cd51ca9ffb8ff7f7a3d083ff6a6c9 |
| hovercard-subject-tag | issue:4070594917 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/EntityProcess/allagents/232/issue_layout |
| twitter:image | https://opengraph.githubassets.com/c6a9d47de78a7bd5f66e7e5c722a83581f8b75cf22f8a19ce10a36e74de18203/EntityProcess/allagents/issues/232 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/c6a9d47de78a7bd5f66e7e5c722a83581f8b75cf22f8a19ce10a36e74de18203/EntityProcess/allagents/issues/232 |
| og:image:alt | Context When implementing #228, we discovered a gap: allagents skills add |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | christso |
| hostname | github.com |
| expected-hostname | github.com |
| None | 7db3950e3f59095e20a9789440c3dd554efc62d434882ead06ae05b5815605b9 |
| turbo-cache-control | no-preview |
| go-import | github.com/EntityProcess/allagents git https://github.com/EntityProcess/allagents.git |
| octolytics-dimension-user_id | 8837957 |
| octolytics-dimension-user_login | EntityProcess |
| octolytics-dimension-repository_id | 1139437609 |
| octolytics-dimension-repository_nwo | EntityProcess/allagents |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 1139437609 |
| octolytics-dimension-repository_network_root_nwo | EntityProcess/allagents |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | cd8f6a71db61d6012a0cbb134be844fdbe9b8a45 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width