Workflow Skill Studio
Turn screen recordings plus keyboard and mouse activity logs into concise,
reusable SKILL.md files without leaving VS Code.
What it does
- Scans a local folder or any cloud-drive folder synced to the computer.
- Accepts pasted public video, Google Drive, and YouTube links.
- Automatically prepares oversized local recordings as temporary compact MP4
files before analysis when
ffmpeg is available.
- Processes recordings longer than 30 minutes as overlapping 20-minute segments,
caches each completed segment as evidence, and waits until one final pass to
filter non-work activity and synthesize skills.
- Accumulates completed recording evidence in a workspace-scoped multi-day corpus
and regenerates the smallest useful set of end-to-end employee workflow skills.
- Excludes social media, entertainment, personal communications, idle time,
unrelated browsing, and incidental settings exploration from generated skills.
- Automatically pairs
.json, .jsonl, .csv, .log, and .txt activity
logs with recordings that share a filename/session prefix.
- Redacts common credentials, email addresses, payment/identity numbers, account
numbers, and URL query strings from activity logs before transmission.
- Excludes raw
capture.webm files and verifies the capture app's SHA-256
privacy attestation before uploading local employee recordings by default.
- Lets you attach logs manually and select exactly which recordings to analyze.
- Discovers the current OpenRouter catalog and selects a video-capable model in
Auto mode. A specific OpenRouter model ID can be set in VS Code Settings.
- Writes one consolidated workflow-skill set from all successfully analyzed recordings in the workspace corpus.
- Adds concise token-efficiency guidance by default.
- Stores redacted failure diagnostics at a configurable path.
- Holds generated skills as a pending draft until a person approves or rejects
them in the extension. No
SKILL.md is written before approval.
- Includes a read-only local MCP server for sanitized corpus retrieval and
pending-review visibility without paid embeddings.
The separate Microsoft capture application is expected to export recordings
and activity logs. This extension does not monitor the keyboard or mouse.
Test it locally
- Open this folder in VS Code.
- Press
F5 to launch an Extension Development Host.
- Open a folder in that host window.
- Click Skill Studio in the Activity Bar.
- Choose a recording folder or paste a public video link.
- Set an OpenRouter API key when prompted, select recordings, and click
Generate skills.
For development only, the extension recognizes either of these names in a
repo-local .env file:
OPENROUTER_API_KEY=...
open-router-api-key=...
The .env file is excluded from the extension package. Installed users enter
their own key, which is saved in VS Code Secret Storage and never written to
settings or generated skills.
For employee recordings, select the Workflow Skill Capture sessions root. Each
completed session directory contains:
<session-id>/
├── final.mp4
├── manifest.json
└── activity.jsonl
The extension never lists the raw capture.webm. It verifies that
manifest.json attests the exact SHA-256 of final.mp4 and that Privacy Shield
was enabled. Log records contain only allowlisted activity metadata. The
extension asks for confirmation before sending selected files to OpenRouter.
Supported video formats follow OpenRouter's video-input contract: MP4, MPEG,
MOV, and WebM. Local recordings longer than 30 minutes are divided into
overlapping 20-minute evidence segments. Each segment is temporarily compressed,
analyzed sequentially, and deleted; completed evidence is cached so an interrupted
eight-hour run can resume without repeating successful model calls. One final
text-only pass reviews all ordered evidence, removes non-work activity, and
consolidates the remaining work into as few end-to-end skills as possible. No
segment creates a SKILL.md. The source is never modified.
This preparation requires ffmpeg and ffprobe on PATH.
Short local files larger than 12 MB are temporarily compressed to MP4 before
being sent as base64 data URLs. Public links are passed directly, and Google
Drive viewer links are converted to public download URLs. Provider-specific URL
and duration restrictions still apply; for multi-hour YouTube recordings,
download a local copy so the resumable segment pipeline can be used.
Settings
| Setting |
Default |
Purpose |
workflowSkillStudio.videoSourcePath |
empty |
Local or synced cloud-drive input folder |
workflowSkillStudio.outputPath |
.agent-skills/generated |
Generated skill root |
workflowSkillStudio.model |
auto |
Auto selection or any explicit OpenRouter model ID |
workflowSkillStudio.includeTokenEfficiency |
true |
Add token-saving behavior to each skill |
workflowSkillStudio.failureLoggingEnabled |
true |
Store redacted failures |
workflowSkillStudio.failureLogPath |
.workflow-skill-studio/failures |
Failure-log folder |
workflowSkillStudio.longVideoCachePath |
.workflow-skill-studio/cache |
Resumable long-video evidence cache |
workflowSkillStudio.requirePrivacyAttestation |
true |
Reject local recordings without a valid capture-app privacy attestation |
workflowSkillStudio.maxLocalVideoMB |
20000 |
Maximum original local recording size accepted |
Output
.agent-skills/generated/
└── ongoing-employee-workflow/
└── prepare-and-publish-daily-report/
└── SKILL.md
Existing skills are never overwritten. Re-running a recording writes a
timestamped alternative beside the existing SKILL.md.
After synthesis, the extension shows the workflow summary and proposed skill
names in a Human sign-off required card. Approve and write SKILL.md is
the only path that writes the draft. Approval and rejection are recorded in a
content-minimized local audit log under the cache; the MCP server has no approval
or write tool.
Multi-day cache and retrieval
No external vector database or OpenRouter embedding configuration is required.
The extension keeps structured, work-only evidence in
.workflow-skill-studio/cache/corpus. Previously completed video segments and
recordings are retrieved from this local cache, so adding another day analyzes
only new material. When the corpus changes, a small final OpenRouter call merges
recurring evidence across days into as few distinct end-to-end workflows as
possible. Delete the workspace cache only when you intentionally want to rebuild
the employee workflow corpus from the source recordings.
Run npm run mcp to start the bundled read-only local MCP server. Its tools use
deterministic keyword retrieval over already-sanitized corpus JSON, expose only
sanitized pending-review metadata, and report the architecture policy. The
official OpenRouter MCP endpoint may be configured separately for current model
and pricing lookup; it is never given recordings or corpus data. See mcp/.
Privacy and cost
Selected video and log content is sent to OpenRouter and the routed model
provider. Review the source material for secrets and personal data before
confirming. Common sensitive patterns are removed from text activity logs and
model output locally. Local employee videos are rejected unless Workflow Skill
Capture attests that Privacy Shield was applied to the exact final-file hash.
The capture detector is conservative but cannot guarantee recognition of a
generically titled sensitive window, so manual shielding and final employee
review remain required. OpenRouter requests deny provider data collection and
require a Zero Data Retention endpoint. Video analysis consumes model credits based on the chosen model,
duration, resolution, and provider pricing. Long recordings may require many
requests; the UI reports segment progress and cached segments are reused. This
extension includes no telemetry.
Development
npm test
npm run package
The Marketplace publish step is intentionally separate and is not run by these
commands.