stack-sync
Point it at a repository. It reads the dependency manifests, updates your daily.dev tech stack and follows the matching tags, so your feed matches what you actually build. Shows the plan before changi
Файлы1
Открыть в GitHubSKILL.mdplugins/stack-sync/skills/stack-sync/SKILL.md
GitHubStack Sync
Your daily.dev feed is only as good as the tags you follow and the stack on your profile. Stack Sync derives both from the code you work on.
Requirements
One of:
- The daily.dev MCP server (
https://api.daily.dev/mcp) connected with thewritescope, or - A daily.dev personal access token in
DAILY_DEV_TOKEN(https://daily.dev/settings/api). Base URLhttps://api.daily.dev/public/v1, headerAuthorization: Bearer $DAILY_DEV_TOKEN. Never send the token anywhere exceptapi.daily.dev.
Each step lists the MCP tool first and the REST call after it.
Steps
- Read the manifests in the current repository:
package.json(dependencies and devDependencies),go.mod,Cargo.toml,pyproject.tomlorrequirements.txt,Gemfile,pom.xml/build.gradle,composer.json, plus Dockerfiles and CI config for infrastructure (Postgres, Redis, Kubernetes, Terraform). Collect the technology names, not every package:@fastify/corsmeans Fastify,@types/*means nothing. - Look at what's already there.
getProfileStack(GET /profile/stack?limit=100) andgetFeedsFilters(GET /feeds/filters). Don't propose anything already on the stack or already followed. - Resolve each technology twice. Tags and stack tools are separate vocabularies:
- Tag:
getSearchTagswithqset to the name (GET /search/tags?q=<name>). Tags are lowercase hyphenated slugs;typeormhas no tag whilefastify,graphql,redis,postgresqldo. Spaces in the query are treated as hyphens. - Stack tool:
getProfileStackSearchwithquery(GET /profile/stack/search?query=<name>). Use the returnedtitleexactly; the add call must match an existing tool.
- Tag:
- Show the plan. One table: technology, tag found (or none), stack tool found (or none), action. Ask the user to confirm, and let them strike lines. Report the technologies that matched neither so they can add them by hand.
- Apply.
- Tags:
postFeedsFiltersTagsFollowwith the list (POST /feeds/filters/tags/follow, body{ "tags": [...] }). One call for all tags. - Stack:
postProfileStackper tool (POST /profile/stack, body{ "title": "Fastify", "section": "primary" }). Useprimaryfor the main stack,learningorhobbyif the user says so.
- Tags:
- Optional: a feed for this repo. If the user wants it, create a custom feed named after the repository with
postFeedsCustom(letters, numbers and spaces only, max 50 characters) and follow the same tags on it withpostFeedsFiltersByFeedIdTagsFollow(POST /feeds/filters/{feedId}/tags/follow). - Confirm with
getProfileStackandgetFeedsFiltersand summarize what changed.
Output
The plan table before, a short "done" list after: tags followed, tools added, anything skipped and why.
Guardrails
- Never unfollow, block or remove anything. This skill only adds.
- Always show the plan and wait for confirmation before step 5.
- A typical sync is 2 lookups per technology plus 2 to 4 writes, so 20 to 30 requests for a medium repo. Say so if the user is on a free account.