Skip to content

feat(skills): add screen-recording awareness skill#8011

Merged
Jasonnnz merged 1 commit into
feature/qa-video-automationfrom
add-screen-recording-skill
Feb 24, 2026
Merged

feat(skills): add screen-recording awareness skill#8011
Jasonnnz merged 1 commit into
feature/qa-video-automationfrom
add-screen-recording-skill

Conversation

@Jasonnnz
Copy link
Copy Markdown
Contributor

@Jasonnnz Jasonnnz commented Feb 24, 2026

Summary

  • Add a bundled screen-recording skill with SKILL.md that teaches the model about screen recording capabilities
  • Awareness-only skill (no TOOLS.json) — prepares for future tool-bearing recording control
  • Covers recording lifecycle, health checks, retention, limitations, and when to mention recording to users

Test plan

  • Verify SKILL.md has valid YAML frontmatter
  • Verify file is in the correct bundled-skills directory
  • No build step needed for SKILL.md-only skills

🤖 Generated with Claude Code


Open with Devin

Add a bundled screen-recording SKILL.md that teaches the model about
screen recording capabilities, lifecycle, retention, and limitations.
Awareness-only — no tools, just contextual knowledge for the model.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Jasonnnz Jasonnnz merged commit ea26e3e into feature/qa-video-automation Feb 24, 2026
@Jasonnnz Jasonnnz deleted the add-screen-recording-skill branch February 24, 2026 17:43
Copy link
Copy Markdown
Contributor

@devin-ai-integration devin-ai-integration Bot left a comment

Choose a reason for hiding this comment

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

Devin Review found 1 potential issue.

View 3 additional findings in Devin Review.

Open in Devin Review

Comment on lines +6 to +9
metadata:
vellum:
emoji: "🎥"
os: ["darwin"]
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.

🔴 Multi-line YAML metadata not parsed by line-based frontmatter parser, losing os constraint and emoji

The metadata field in the new SKILL.md uses multi-line nested YAML syntax, but the frontmatter parser (assistant/src/skills/frontmatter.ts:28-62) is a simple line-by-line key-value parser that splits on :. It does not support multi-line YAML or nested structures.

Root Cause and Impact

When the parser encounters:

metadata:
  vellum:
    emoji: "🎥"
    os: ["darwin"]

It parses each line independently, producing:

  • metadata"" (empty string)
  • vellum"" (empty string)
  • emoji"🎥"
  • os["darwin"]

Since metadata is an empty string, the check at assistant/src/config/skills.ts:309 (if (metadataRaw)) evaluates to false and skips JSON parsing entirely. The metadata field on the skill will be undefined.

This causes two problems:

  1. The os: ["darwin"] constraint is lost — the skill will appear available on all platforms instead of only macOS. The OS eligibility check at assistant/src/config/skills.ts:149-158 will never fire because vellum.os is undefined.
  2. The emoji 🎥 is lost — the skill won't display its intended icon.

Every other skill in the codebase uses single-line JSON for metadata (e.g., metadata: {"vellum": {"emoji": "🍎", "os": ["darwin"]}} in assistant/src/config/bundled-skills/macos-automation/SKILL.md).

Suggested change
metadata:
vellum:
emoji: "🎥"
os: ["darwin"]
metadata: {"vellum": {"emoji": "🎥", "os": ["darwin"]}}
Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Copy link
Copy Markdown

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

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: 30a6047ecf

ℹ️ 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 on lines +6 to +9
metadata:
vellum:
emoji: "🎥"
os: ["darwin"]
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Use JSON metadata frontmatter for OS gating

The skill loader only parses metadata as a single-line JSON value (JSON.parse(fields.metadata) in assistant/src/config/skills.ts), but this frontmatter uses nested YAML under metadata:. That means metadata is effectively dropped, including os: ["darwin"], so this macOS-only skill becomes eligible on other platforms and can be surfaced/invoked where screen recording is unavailable.

Useful? React with 👍 / 👎.

## How It Works

- **Automatic in QA mode**: When a QA/test session starts, recording begins automatically before any destructive actions (clicks, typing, etc.)
- **Can be requested explicitly**: Sessions can be configured with `requiresRecording: true` to enable recording outside of QA mode
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 Avoid claiming requiresRecording works outside QA

This instruction says requiresRecording: true enables recording outside QA mode, but the macOS session starts recording only in the qaMode path and app call sites only provide a ScreenRecorder when qaMode == true. In practice, a non-QA session with only requiresRecording cannot start recording and can hit recording-gate failure behavior, so this guidance teaches an unsupported flow.

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.

1 participant