Skip to content

feat(org): Phase 3 in-host Skills catalog - #61

Merged
XYAIStudio merged 2 commits into
mainfrom
cursor/org-skills-phase3-ae35
Sep 19, 2026
Merged

XYAIStudio merged 2 commits into
mainfrom
cursor/org-skills-phase3-ae35

Conversation

@XYAIStudio

@XYAIStudio XYAIStudio commented Sep 19, 2026 •

Copy link
Copy Markdown
Owner

Summary

Phase 3 vertical slice: Skills as an in-host Organization sub-UI, using the same org-ui dual-delivery seam as Announcements (#57), Org chart (#58), Employees (#59), and Governance (#60).

  • Shared page: dashboard/src/org-ui/pages/skills (SkillsPage)
  • Dashboard route: /organization/skills (workbench path tab + entry card)
  • Host APIs: existing POST /api/org-module/skills/generate|publish; this slice adds GET /api/org-module/skills and GET /api/org-module/skills/{slug} so the catalog is not sidecar-only
  • Generate / publish stay require_permission("plugins") (admin bypass); the page hides those actions for non-admins
  • freeos org export-standalone now lists skills and imports the same SkillsPage

No sidecar, no iframe, no second login wall. This is not a second skill runtime.

Org Skills vs FreeOS Agent Skills

Surface What it is Where it lives
Organization skills (this page) Generated SKILL.md wrappers that call org-module APIs (skill_bridge) {FREEOS_HOME}/org-skills/ · /organization/skills
Host Agent Skills The skills Octop agents actually run (packages / workspace skills) skill_packages table · /personalization/skill-packages and /personalization/skills

This page lists host skill packages read-only and links to Personalization for edit/install. It does not copy the sidecar marketplace, plugin center, or paid-plugin flow.

Data model (host SoT)

Surface Store API
Generated org skills {FREEOS_HOME}/org-skills/org-<module>/ GET /api/org-module/skills · GET …/skills/{slug} · POST …/generate · POST …/publish
Host Agent Skills Octop skill_packages same list payload host_packages; edit stays on Personalization

openXYOS sidecar /api/skills (marketplace, plugin center) is reference-only. Default path does not start or call :3780.

Deferrals (out of this PR)

  • Chat / start conversation from a skill
  • Sidecar marketplace / plugin center / paid install
  • Editing Agent Skills inside Organization (runtime stays on Personalization)
  • Knowledge, Tasks, Agents, Settings
  • Full export-standalone Vite/Node packaging (Phase 5)

Target branch

  • Base is main (continues the Phase 3 org-ui slices already merged there)

Type of change

  • New feature

Test plan

  • uv run pytest tests/unit/test_org_skills.py tests/unit/cli/test_org_export_standalone.py tests/unit/test_org_governance.py tests/unit/test_org_chart.py tests/unit/test_skill_bridge.py (25 passed)
  • uv run ruff check + uv run mypy --strict on changed org/skills modules
  • cd dashboard && npx tsc --noEmit
  • cd dashboard && npx vitest run src/org-ui src/pages/Organization src/routes/controlAdminPath.test.ts (69 passed)
  • make all (full ship bar; run in CI)

Live browser walkthrough of /organization/skills was not run here (no signed-in FreeOS host in this environment). Component tests cover list/generate/publish without iframe.

Checklist

  • Updated CHANGELOG.md (if user-facing)
  • README / docs updated (if needed)
Open in Web Open in Cursor 

cursoragent and others added 2 commits September 19, 2026 03:34
Add /organization/skills using shared org-ui SkillsPage wired to host
skill_bridge list/read/generate/publish. Host skill packages are listed
read-only so Agent Skills stay on FreeOS Personalization.

Co-authored-by: XYAI Labs <haoboy8@gmail.com>
Avoid nested buttons on catalog cards, Prettier-wrap org-ui client
types, and assert 400 on uppercase slugs instead of path traversal.

Co-authored-by: XYAI Labs <haoboy8@gmail.com>
@XYAIStudio
XYAIStudio marked this pull request as ready for review September 19, 2026 03:37
@XYAIStudio
XYAIStudio merged commit 6a588d5 into main Sep 19, 2026
4 checks passed
@XYAIStudio
XYAIStudio deleted the cursor/org-skills-phase3-ae35 branch September 19, 2026 03:37
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.

2 participants