Skip to content

fix(skills): make stash-managed-platforms frontmatter valid YAML - #954

Open
coderdan wants to merge 2 commits into
mainfrom
fix/cip-3900-managed-platforms-frontmatter
Open

coderdan wants to merge 2 commits into
mainfrom
fix/cip-3900-managed-platforms-frontmatter

Conversation

@coderdan

@coderdan coderdan commented Aug 29, 2026 •

Copy link
Copy Markdown
Contributor

skills/stash-managed-platforms/SKILL.md has an unquoted description: containing : :

... the platform guards that break installs: command-time ceilings that kill ...

A plain YAML scalar can't hold a colon-space, so anything parsing this frontmatter throws:

incomplete explicit mapping pair; a key node is missed; or followed by
a non-tabulated empty line at line 3, column 856

cipherstash.com mirrors these skills at build time (the marketing app's prebuild runs generate-agent-skills.mjs against cipherstash/stack@main), so this broke that site's deploys on every branch, not only ones touching skills. It surfaced on an unrelated dashboard PR.

Rewritten as a folded block scalar (>-), which is safe for both the colons and the embedded "version too new" quotes. The parsed string is byte-for-byte identical to before — verified against the current main file:

identical: true

All 14 skills now parse; stash-managed-platforms was the only broken one.

Closes CIP-3900

https://claude.ai/code/session_01HnNBVu5xeEQ8AdVgLxkKWL

Summary by CodeRabbit

  • Bug Fixes
    • Corrected YAML formatting in the managed platforms skill description so it can be parsed successfully, without changing its text or meaning.

The description was an unquoted YAML scalar containing ": " ("...guards
that break installs: command-time ceilings..."), which is invalid — a
plain scalar can't hold a colon-space. Every consumer that parses the
frontmatter throws on it.

cipherstash.com mirrors these skills at build time via the marketing
app's prebuild step, so this took down that site's deploys on every
branch, not just the one that touched skills.

Rewrites the value as a folded block scalar, which handles both the
colons and the embedded double quotes. The parsed string is byte-for-byte
what it was.

Closes CIP-3900

Claude-Session: https://claude.ai/code/session_01HnNBVu5xeEQ8AdVgLxkKWL
@coderdan
coderdan requested a review from a team as a code owner August 29, 2026 03:17
@changeset-bot

changeset-bot Bot commented Aug 29, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: bd7e55f

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 11 packages
Name Type
stash Patch
@cipherstash/basic-example Patch
@cipherstash/e2e Patch
@cipherstash/stack-drizzle Patch
@cipherstash/stack-prisma Patch
@cipherstash/stack-supabase Patch
@cipherstash/stack Patch
@cipherstash/wizard Patch
@cipherstash/bench Patch
@cipherstash/prisma-example Patch
@cipherstash/test-kit Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@freshtonic freshtonic left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

One thing blocks this, and it's small: it needs a stash patch changeset.

Everything substantive verified:

  • The bug is real: parsing main's frontmatter with js-yaml fails ("bad indentation of a mapping entry (3:856)") — the unquoted installs: command-time colon-space, exactly as described.
  • The >- folded scalar parses, and the parsed description is byte-for-byte identical to the old raw line (I diffed them programmatically). The body is untouched.
  • CI is green.

But skills/ ships inside the stash npm tarball, and AGENTS.md is explicit that a skills-only change is not internal — it needs a stash patch changeset (changeset-bot flagged this too). Without one, the currently published tarball keeps shipping the unparseable frontmatter to every stash init and the fix only ever reaches the marketing site's main-branch mirror. The changeset is what makes this fix ship.

Suggested text:

---
'stash': patch
---

Fix invalid YAML in `skills/stash-managed-platforms/SKILL.md` frontmatter: the
unquoted `description` contained a colon-space, so any YAML parser rejected the
file (this broke cipherstash.com deploys, which mirror these skills at build
time). Rewritten as a folded block scalar; the parsed description is
byte-for-byte identical.

Add that and this is an insta-approve.

One heads-up, not blocking: #951 edits this same file's body (managed-platforms snippet + the "three things" list) — frontmatter vs body, so no textual conflict expected, but whichever merges second should double-check the rebase.

  managed-platforms frontmatter fix
@coderabbitai

coderabbitai Bot commented Oct 8, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: c6d3138f-f66a-472a-8240-f31a392b2fcd
📥 Commits

Reviewing files that changed from the base of the PR and between 0854bda and bd7e55f.

📒 Files selected for processing (2)
  • .changeset/managed-platforms-skill-frontmatter.md
  • skills/stash-managed-platforms/SKILL.md

Included review availability: This review used your included allowance. Your plan provides up to 2 included reviews per hour; 1 remain after this review.


📝 Walkthrough

Walkthrough

The skill description was reformatted as a folded YAML block. A patch changeset records the update and states that the parsed description remains unchanged.

Changes

Skill frontmatter formatting

Layer / File(s) Summary
Folded YAML description
skills/stash-managed-platforms/SKILL.md, .changeset/managed-platforms-skill-frontmatter.md
The skill description uses folded YAML lines. The changeset records a patch and states that the parsed description remains byte-for-byte identical.

Priority: ⬆️ High

Estimated code review effort: 1 (Trivial) | ~4 minutes

Change: Bug fix

Suggested reviewers: freshtonic

Merge Risk: ⚪ Minimal · up to bd7e5

The skill description now parses without changing its intended text. The patch changeset targets the package that ships the skill; the PR is ready to merge after normal checks.

Architecture Summary

Architecture risk: 🔵 Low · up to bd7e5

The change affects 1 system.

Changed systems: skills

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — skills (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in skills/stash-managed-platforms/SKILL.md: The skill description was split across folded YAML lines; its content is unchanged.
  • observed — Modified behavior in .changeset/managed-platforms-skill-frontmatter.md: Adds a stash patch changeset describing the frontmatter YAML fix and its stated effect on parsing.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: fixing invalid YAML in the Stash managed-platforms skill frontmatter.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

This branch has not been deployed

No deployments
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