generated: '2026-07-20' method: generated source: >- Generated by the API Evangelist enrichment pipeline from openapi/diaspora-api-openapi.yml and the official diaspora* API documentation at https://diaspora.github.io/api-documentation/. A search of the diaspora* GitHub organization and project site found no provider-published Agent Skills or AGENTS.md, so these are API Evangelist packaged skills. Every operationId referenced is a real operation in the OpenAPI description. description: >- Packaged Agent Skills for the marquee diaspora* API flows. The set is deliberately ordered: because diaspora* is decentralized, connecting to a pod is a prerequisite flow in its own right rather than a setup detail, so it is the first skill and every other skill depends on it. api: diaspora:diaspora-api provider_published: false skills: - name: diaspora-connect-to-a-pod file: skills/diaspora-connect-to-a-pod.md summary: >- Discover a pod via nodeinfo, discover its OpenID Connect endpoints, register the client dynamically, obtain a scoped token, and verify it. prerequisite_for: all operations: - getUser scopes: [openid, profile] - name: diaspora-publish-a-post file: skills/diaspora-publish-a-post.md summary: >- Choose a public or aspect-scoped audience, upload photos, publish a post with mentions, polls and location, verify it, and delete it. operations: - getAspects - createPhotos - createPosts - getPostsByPostGuid - deletePostsByPostGuid scopes: [contacts:read, public:modify, private:modify] - name: diaspora-read-and-engage file: skills/diaspora-read-and-engage.md summary: >- Read the seven streams, follow Link-header pagination correctly, search the pod, and engage — comment, like, reshare, subscribe, mute, hide, report, vote. operations: - getStreamsMain - getStreamsAspects - getStreamsActivity - getStreamsMentions - getStreamsTags - getStreamsLiked - getStreamsCommented - getSearchPosts - getSearchUsers - getSearchTags - getPostsByPostGuidComments - createPostsByPostGuidComments - createPostsByPostGuidLikes - deletePostsByPostGuidLikes - createPostsByPostGuidReshares - createPostsByPostGuidSubscribe - createPostsByPostGuidMute - createPostsByPostGuidHide - createPostsByPostGuidReport - createPostsByPostGuidVote scopes: [private:read, public:read, interactions, public:modify, tags:read] - name: diaspora-manage-audience file: skills/diaspora-manage-audience.md summary: >- Create and organize aspects, move contacts between them, block and unblock people, and follow hashtags — treating each write as a privacy-affecting operation. operations: - getAspects - getAspectsByAspectId - createAspects - updateAspectsByAspectId - deleteAspectsByAspectId - getAspectsByAspectIdContacts - createAspectsByAspectIdContacts - deleteAspectsByAspectIdContactsByPersonGuid - createUsersByPersonGuidBlock - deleteUsersByPersonGuidBlock - getTagFollowings - createTagFollowings - deleteTagFollowingsByTagName scopes: [contacts:read, contacts:modify, tags:read, tags:modify] cross_cutting_rules: - >- There is no single API host. A pod must be chosen before anything else, and credentials are per-pod. - >- The openid scope is mandatory; public:read is always granted; private:read and private:modify require contacts:read. - >- No idempotency mechanism exists. Interaction endpoints signal already-applied state with 409 on create and 410 on delete — treat both as convergence, not failure. - >- Never construct pagination URLs. Follow the Link header; some resources page by timestamp or GUID. - >- Errors are a bespoke {code, message} envelope, not RFC 9457. Branch on status code plus operation, never on message text. - >- 404 can mean "not visible to you" rather than "does not exist", because visibility is governed by aspects and federation reach. related: openapi: openapi/diaspora-api-openapi.yml conventions: conventions/diaspora-conventions.yml errors: errors/diaspora-problem-types.yml scopes: scopes/diaspora-scopes.yml mcp: mcp/diaspora-mcp.yml