Skip to content

Project skills ​

Project skills are reusable, standards-compatible SKILL.md instruction modules that live in a project catalog. A project can acquire skills from its connected repository, another Git repository, or an upload, then assign each skill to the agents that should use it.

At run time, progressive disclosure requires a shared execution filesystem and successful materialization. Agentweaver writes instructions/resources under .agentweaver/skills/ before putting the skill's name, description, and path in the prompt. With pod-local/unavailable storage or a write failure it inlines full instructions instead; it does not emit a dangling lazy-load pointer.

Acquisition ​

Agentweaver recognizes one-skill-per-folder layouts under .github/skills, .copilot/skills, .claude/skills, and .agents/skills. Each skill folder must contain a SKILL.md file with YAML frontmatter for name and description, followed by an instruction body. Bundled text files in the same folder are kept as skill resources.

Acquisition is idempotent. The catalog stores a stable content hash over the name, description, instructions, and sorted resources, so re-syncing or re-importing unchanged content is a no-op. If a synced skill disappears from the connected repository, it is marked missing; if a previously valid same-source skill becomes malformed, it is marked malformed. Only active skills can be injected.

Git and raw imports pass through an SSRF guard before anything is cloned or fetched. The source parser accepts only the owner/repo shorthand, public https://github.com repo/tree/blob URLs, and raw https://raw.githubusercontent.com/.../SKILL.md URLs; every other host, scheme, non-default port, or embedded-credential form is rejected. Multi-skill sources return every discovered candidate from a preview pass so the caller selects which locations to import.

Assignment and prompt assembly ​

Assignments are project-scoped links between a skill and an agent name. Prompt assembly queries only active skills assigned to the current agent. Stale-folder cleanup and git-exclude maintenance are best-effort and logged when they fail. Lookup failure is also logged and yields no skill block; delivery is not a guarantee that every stale folder was removed.

Default assignment preview and apply ​

A confirmed active team is required before defaults can be planned. The service combines blueprint role bindings, bundled skills, the project catalog, and current assignments into a side-effect-free preview with a digest. An explicit apply recomputes that preview, compares the digest, and checks transactional store state before inserting/reactivating skills and assigning agents. Stale previews are rejected rather than partially applied. Preview itself neither acquires nor assigns skills.

Source: apps/Agentweaver.Api/Skills/SkillDefaultsService.cs:55-250.

Source ​

ConcernSource
REST routes for catalog, acquisition, upload, and assignmentapps/Agentweaver.Api/Endpoints/SkillEndpoints.cs:15
Catalog DTOs, idempotent upsert, missing/malformed handling, repository discoveryapps/Agentweaver.Api/Skills/SkillCatalogService.cs:16, apps/Agentweaver.Api/Skills/SkillCatalogService.cs:350
Import source allow-list / SSRF guard (github.com, raw.githubusercontent.com)apps/Agentweaver.Api/Skills/SkillCatalogService.cs:772
SKILL.md frontmatter, recognized directories, size limits, content hashapps/Agentweaver.Api/Skills/SkillParser.cs:33
Path safety for uploads, zip extraction, and resourcesapps/Agentweaver.Api/Skills/SkillPaths.cs:3
Progressive-disclosure prompt block and materializationapps/Agentweaver.Api/Skills/SkillPromptComposer.cs:8
Web catalog and assignment UIapps/web/src/pages/SkillsPage.tsx:108
MCP toolsapps/Agentweaver.Mcp/Tools/SkillTools.cs:10

See also ​

Diagram details and constraints
ElementContract
titleSkills: catalog to safe delivery
takeawayOnly successful shared-filesystem writes produce pointers; all other delivery is inline.
group-title-0ACQUIRE · VALIDATE · ASSIGN
group-title-1DELIVERY BRANCHES · EXECUTION
Skill sourcesSkill sources
Skill sourcesCheckout · repo · marketplace
Skill sourcesUpload and manual entry are also inputs
Skill sourcesSkillCatalogService.cs:335-372
Active assignmentsActive assignments
Active assignmentsLook up skills for this agent
Active assignmentsNo active assignments → no skill block
Active assignmentsSkillPromptComposer.cs:45-81
Project skill catalogProject skill catalog
Project skill catalogParse / validate / content-hash upsert
Project skill catalogMissing / malformed sources are tracked
Project skill catalogSkillCatalogService:1045-1156
Shared worktree availableShared worktree available
Shared worktree availableBest-effort stale-folder cleanup
Shared worktree availableAttempt each assigned skill materialization
Shared worktree availableSkillPromptComposer.cs:63-106
Explicit agent assignmentExplicit agent assignment
Explicit agent assignmentCatalog skills bind to agents
Explicit agent assignmentDelivery selects active assigned entries
Explicit agent assignmentSkillPromptComposer.cs:49-54
Successful write onlySuccessful write only
Successful write onlyPrompt metadata + SKILL.md path
Successful write onlyAgent reads relevant skill instructions
Successful write onlySkillPromptComposer.cs:91-98,145
Defaults preview / applyDefaults preview / apply
Defaults preview / applyConfirmed team + preview digest
Defaults preview / applyApply recomputes; stale digest rejects
Defaults preview / applySkillDefaultsService.cs:231-250
Inline full instructionsInline full instructions
Inline full instructionsPod-local / unavailable filesystem
Inline full instructionsAlso used for each failed materialization
Inline full instructionsSkillPromptComposer.cs:99-160
Skill sourcesvalidate
Project skill catalogassign
Explicit agent assignmentlookup
Active assignmentsshared FS
Shared worktree availablewrite succeeds
Active assignmentsno FS
Shared worktree availablewrite fail
scopeDefaults preview has no side effects; explicit apply is digest-checked. Cleanup is best-effort.
groupsACQUIRE · VALIDATE · ASSIGN; DELIVERY BRANCHES · EXECUTION