Skip to content

Install fstack skills for Cursor cloud sessions - #3

Merged
naytewilson merged 1 commit into
mainfrom
cursor/install-cloud-skills-e73c
Jul 31, 2026
Merged

Install fstack skills for Cursor cloud sessions#3
naytewilson merged 1 commit into
mainfrom
cursor/install-cloud-skills-e73c

Conversation

@naytewilson

@naytewilson naytewilson commented Jul 31, 2026

Copy link
Copy Markdown
Owner

What changed

Cursor Cloud Agents can now discover and retain all 14 fstack skills across sessions:

  • .cursor/skills/ symlinks expose the canonical skills/ trees for project discovery
  • .cursor/environment.json runs scripts/install-cursor-cloud-skills.sh on each environment boot
  • The install script copies skills into ~/.cursor/skills without installer metadata
  • Validator and docs enforce the mirror and install hook

Why this is the smallest complete change

Canonical skills stay in skills/. No duplicated skill bodies. No vendor CLI required at boot. Interactive vs continuous skill behavior is unchanged.

Evidence

Commands run:
sh -n scripts/validate.sh
sh -n scripts/test-validate.sh
sh -n scripts/install-cursor-cloud-skills.sh
sh scripts/test-validate.sh
sh scripts/validate.sh
git diff --check
sh scripts/install-cursor-cloud-skills.sh

Observed results:
Validator tests passed.
Validated 14 skills.
Installed 14 Cursor cloud skill(s) into /home/ubuntu/.cursor/skills.
git diff --check clean
CI Validate skills: success (run 30629578120)

Skill and documentation checks

  • sh -n scripts/validate.sh
  • sh -n scripts/test-validate.sh
  • sh scripts/test-validate.sh
  • sh scripts/validate.sh
  • git diff --check against the base branch
  • New or changed skills are documented in README.md
  • Frontmatter name matches the skill directory
  • No secrets, credentials, private local paths, or generated files were added

Missing evidence or remaining risk

This session started without a saved cloud environment (environment: null). After merge, a new cloud agent must check out a branch that includes .cursor/environment.json (or a saved environment snapshot) for the home install to run automatically at boot. Project .cursor/skills discovery works from checkout alone once this lands.

Open in Web Open in Cursor 

Add .cursor/environment.json and an idempotent install script that
copies skills into ~/.cursor/skills on each cloud environment boot.
Expose the same skills via .cursor/skills symlinks for project discovery.

Co-authored-by: Nayte <naytewilson@users.noreply.github.com>
@naytewilson
naytewilson marked this pull request as ready for review July 31, 2026 21:22
@naytewilson
naytewilson merged commit 1c3376b into main Jul 31, 2026
1 check passed

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 58145b69bf

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/validate.sh
else
while IFS= read -r name; do
[ -n "$name" ] || continue
if [ ! -e "$cursor_skills/$name/SKILL.md" ]; then

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Verify that each Cursor link targets the named skill

When a link is accidentally aimed at another valid skill—for example, .cursor/skills/fstack pointing to ../../skills/fstack-run—this check only confirms that some SKILL.md resolves, and the reverse loop still finds the canonical skills/fstack; the validator therefore passes while Cursor routes the interactive command to the autonomous runner. Validate the resolved target or its frontmatter name against the link name.

AGENTS.md reference: AGENTS.md:L56-L58

Useful? React with 👍 / 👎.

Comment thread scripts/validate.sh
done < "$names_file"

for entry in "$cursor_skills"/*; do
[ -e "$entry" ] || continue

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reject dangling entries in the Cursor skill mirror

When a skill is removed or renamed but its checked-in Cursor link remains, the link becomes dangling, causing [ -e "$entry" ] to return false and this loop to skip it; the validator then reports success even though .cursor/skills no longer mirrors the skills on disk. Inspect symlinks with -L or otherwise validate every directory entry before continuing.

AGENTS.md reference: AGENTS.md:L55-L56

Useful? React with 👍 / 👎.

mkdir -p "$dest"

installed=0
for skill_dir in "$src"/*/; do

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Remove retired fstack skills from the home install

On a reused cloud environment after a skill is removed or renamed, this loop visits only current source directories, so the previous copy remains under ~/.cursor/skills and Cursor continues discovering retired instructions even though the refresh reports success. Track previously managed fstack names and remove obsolete ones without pruning unrelated personal skills.

AGENTS.md reference: AGENTS.md:L55-L58

Useful? React with 👍 / 👎.

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