design profiles - sinrimin/harness-nexus GitHub Wiki
Profiles (concept & install-flow note)
The implemented Profile model (CRUD, scope rules, profile-routed proxy access) is documented in
phase-2.2-registry.md. This note covers the broader concept (bundling all resource kinds + third-party imports) and the intended CLI install flow, which is still future work.
A profile is a named, versioned bundle of resources (MCP servers, skills, hooks, sub-agents, rules, commands) plus optional third-party imports (ECC, Superpower). One-click install applies one or more profiles to a target Agent tool, writing assets into that tool's config directories.
Scoping
Every resource and profile is either global (admin-managed, shared) or personal (per-user). Personal items are only visible to their owner; global items are visible to all authenticated users. The CLI and API honor this when listing and installing.
Install flow (intended)
hnx install --profile frontend-daily --target zcode- CLI resolves the profile → its entries (resources) and imports.
- For each resource: fetch the artifact (git/tarball/local), verify checksum,
then write to the target tool's directory using a target-specific writer
(e.g.
~/.claude/skills, ZCode workspace config, …). - For each import: run the matching adapter (ECC/Superpower) to place assets.
The CLI fetches profiles from a running Harness Nexus server via the SDK. A
profile is a reference bundle (its entries point at server-side resources by
id), so the resource bodies and the aggregated /mcp endpoint both require
the server — the CLI does not read local manifests.
Manifest schema
Defined in packages/shared/src/schemas/profile.ts (zod). The server, web UI,
and CLI all validate against this. Keep it in sync with the domain types in
packages/core/src/domain/profile.ts.