Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
231 commits
Select commit Hold shift + click to select a range
e65fac6
fix(recorder-core): slice streamed chunks into uniform parts for Clou…
massmarketconsumer-arch Sep 12, 2026
17e1790
Adjust desktop dev run and Bun output
richiemcilroy Sep 12, 2026
09adf1f
feat(audio): add the bundled RNNoise inference crate
richiemcilroy Sep 13, 2026
2757bfd
feat(audio): add voice profiling and level normalization
richiemcilroy Sep 13, 2026
d4bc099
feat(audio): upgrade Studio Sound denoising and alignment
richiemcilroy Sep 13, 2026
2cbc63c
perf(audio): cache voice profiles during progressive decoding
richiemcilroy Sep 13, 2026
d7fa7a2
feat(project): persist Studio Sound isolation strength
richiemcilroy Sep 13, 2026
788d94a
feat(project): add clip volume and cursor visibility
richiemcilroy Sep 13, 2026
7e77bf7
feat(project): add camera background removal settings
richiemcilroy Sep 13, 2026
5733803
test(project): cover legacy audio and camera settings
richiemcilroy Sep 13, 2026
68668a3
feat(project): add text styles and animation options
richiemcilroy Sep 13, 2026
acd8230
perf(editor): move streaming audio processing off callbacks
richiemcilroy Sep 13, 2026
43b5a82
fix(editor): release audio filter frames before reuse
richiemcilroy Sep 13, 2026
4fb0acd
feat(editor): apply clip volume during playback and export
richiemcilroy Sep 13, 2026
5c7af8e
feat(editor): apply isolation tiers to cached voice processing
richiemcilroy Sep 13, 2026
0bfdad2
feat(editor): preserve voice enhancement in streaming exports
richiemcilroy Sep 13, 2026
5217a40
feat(editor): enhance microphone audio during preparation
richiemcilroy Sep 13, 2026
31e0e0d
fix(editor): refresh live playback when clip audio changes
richiemcilroy Sep 13, 2026
ae67add
test(editor): cover live clip volume and isolation changes
richiemcilroy Sep 13, 2026
a951f24
test(audio): add a streaming Studio Sound probe
richiemcilroy Sep 13, 2026
a320936
feat(editor): render updated thumbnails when projects close
richiemcilroy Sep 13, 2026
849af1b
feat(export): guard exports against disk and memory pressure
richiemcilroy Sep 13, 2026
0ea4be7
feat(export): measure estimates with sampled encodes
richiemcilroy Sep 13, 2026
4957886
perf(export): reuse editor decoders for quality previews
richiemcilroy Sep 13, 2026
f1bb1f1
test(export): add an estimate accuracy benchmark
richiemcilroy Sep 13, 2026
1c1c074
feat(camera): refine segmentation masks using frame motion
richiemcilroy Sep 13, 2026
d09e1f5
perf(camera): reuse tensors and tune Apple Silicon inference
richiemcilroy Sep 13, 2026
5816e73
feat(camera): add cutouts and improve background blur
richiemcilroy Sep 13, 2026
f490b26
test(camera): verify GPU blur and cutout output
richiemcilroy Sep 13, 2026
0b45800
test(camera): add segmentation performance benchmarks
richiemcilroy Sep 13, 2026
b8844ee
test(camera): add image and video effect probes
richiemcilroy Sep 13, 2026
4042b29
test(camera): add a resource soak harness
richiemcilroy Sep 13, 2026
db3de3f
build(media): optimize audio and camera effects in development
richiemcilroy Sep 13, 2026
409b60a
feat(rendering): fade cursors across hidden clip boundaries
richiemcilroy Sep 13, 2026
d0f9750
fix(rendering): base camera transition blur on frame motion
richiemcilroy Sep 13, 2026
0ac4e5c
fix(rendering): preserve cutout edges and camera-only backgrounds
richiemcilroy Sep 13, 2026
137e60c
feat(rendering): prepare animated text styles and backgrounds
richiemcilroy Sep 13, 2026
f5721f3
feat(rendering): draw text outlines gradients and reveals
richiemcilroy Sep 13, 2026
73a778d
feat(backgrounds): refresh animated gradient palettes
richiemcilroy Sep 13, 2026
c56b742
fix(recording): map webcam placement to the captured region
richiemcilroy Sep 13, 2026
a02b625
fix(desktop): await the recording cue before countdown capture
richiemcilroy Sep 13, 2026
60d3615
feat(gpui): share desktop recording and notification sounds
richiemcilroy Sep 13, 2026
a162377
build(gpui): watch shared sound assets during development
richiemcilroy Sep 13, 2026
7922d1e
feat(gpui): play screenshot and clipboard completion cues
richiemcilroy Sep 13, 2026
a89d4e8
feat(gpui): play upload success and failure notifications
richiemcilroy Sep 13, 2026
c82d555
fix(gpui): wait for countdown audio before recording
richiemcilroy Sep 13, 2026
9b21f21
feat(gpui): persist Studio Sound defaults and isolation
richiemcilroy Sep 13, 2026
474ad26
feat(desktop): enable configurable Studio Sound defaults
richiemcilroy Sep 13, 2026
daa35e0
feat(desktop): preserve alpha through preview transports
richiemcilroy Sep 13, 2026
d54e27a
feat(desktop): support transparent camera cutout previews
richiemcilroy Sep 13, 2026
ee4e52b
feat(gpui): display transparent camera cutout frames
richiemcilroy Sep 13, 2026
897010b
feat(desktop): add camera background controls
richiemcilroy Sep 13, 2026
7bdf808
fix(camera): improve resize handle contrast in both apps
richiemcilroy Sep 13, 2026
4b76bc7
fix(desktop): retain stopped camera placement in Studio
richiemcilroy Sep 13, 2026
30c6db3
feat(desktop): add versioned recording thumbnail queries
richiemcilroy Sep 13, 2026
4fdfba8
fix(desktop): refresh recording thumbnails after editing
richiemcilroy Sep 13, 2026
d4c54b2
fix(gpui): prefer edited thumbnails and invalidate their caches
richiemcilroy Sep 13, 2026
ebba10c
fix(desktop): restore native main window geometry
richiemcilroy Sep 13, 2026
5c5834b
fix(desktop): retain matching device requests during startup
richiemcilroy Sep 13, 2026
ecbab66
perf(desktop): defer recovery until the frontend is ready
richiemcilroy Sep 13, 2026
edb4557
perf(desktop): load recent media without scanning full metadata
richiemcilroy Sep 13, 2026
b79731d
perf(desktop): populate tray history in the background
richiemcilroy Sep 13, 2026
0a904d9
fix(desktop): guard picker windows with readiness sessions
richiemcilroy Sep 13, 2026
fe74fd8
feat(desktop): record new editor clips through the main window
richiemcilroy Sep 13, 2026
4d9d865
fix(desktop): supervise export resource usage
richiemcilroy Sep 13, 2026
d01a974
feat(desktop): expose cancellable measured export estimates
richiemcilroy Sep 13, 2026
2f2c961
feat(desktop): format measured export estimate ranges
richiemcilroy Sep 13, 2026
9444e0a
feat(desktop): refresh export settings and estimate presentation
richiemcilroy Sep 13, 2026
0606649
feat(editor): add bounded clip audio controls
richiemcilroy Sep 13, 2026
b362ce8
feat(editor): add compatible adjacent clip merging
richiemcilroy Sep 13, 2026
dfaac03
fix(desktop): preserve clip settings when importing projects
richiemcilroy Sep 13, 2026
e11b0fc
feat(editor): wire clip volume visibility and merge actions
richiemcilroy Sep 13, 2026
8b347eb
feat(editor): add clip settings menus and scaled waveforms
richiemcilroy Sep 13, 2026
da9f0a7
fix(editor): retain selection while hiding idle preview handles
richiemcilroy Sep 13, 2026
9eec69e
fix(editor): resize text without ending inline editing
richiemcilroy Sep 13, 2026
08deddf
feat(editor): preview uppercase text formatting
richiemcilroy Sep 13, 2026
7840662
perf(editor): defer slider bounds updates and close undo groups
richiemcilroy Sep 13, 2026
7d07599
fix(editor): cancel zoom drags when their segment disappears
richiemcilroy Sep 13, 2026
0bc77d4
fix(editor): explain empty automatic zoom results
richiemcilroy Sep 13, 2026
26f7a25
feat(editor): animate the track picker and clarify its actions
richiemcilroy Sep 13, 2026
39a305a
feat(editor): refresh text presets and look matching
richiemcilroy Sep 13, 2026
34af2cc
feat(editor): add text animation hover previews
richiemcilroy Sep 13, 2026
8b7a986
feat(editor): add a dedicated text styling panel
richiemcilroy Sep 13, 2026
2acc5bc
style(editor): align font controls with the editor theme
richiemcilroy Sep 13, 2026
dad3de1
feat(editor): add complete 3D shots and automatic scenes
richiemcilroy Sep 13, 2026
7e4364f
feat(editor): add interactive 3D shot controls
richiemcilroy Sep 13, 2026
9009fd7
feat(editor): wire shot creation pose selection and playback
richiemcilroy Sep 13, 2026
56c89dd
feat(editor): add 3D timeline shot previews and splitting
richiemcilroy Sep 13, 2026
9d46969
feat(editor): expose Studio Sound isolation controls
richiemcilroy Sep 13, 2026
cb84783
refactor(editor): connect dedicated text and 3D panels
richiemcilroy Sep 13, 2026
38001d4
feat(editor): redesign the crop dialog and inspector
richiemcilroy Sep 13, 2026
6e57142
style(editor): outline animated gradient palette previews
richiemcilroy Sep 13, 2026
3246ae6
feat(gpui): add compact editor buttons
richiemcilroy Sep 13, 2026
d46e038
style(gpui): show icons on section fields
richiemcilroy Sep 13, 2026
d07114f
style(gpui): add depth to selected segmented controls
richiemcilroy Sep 13, 2026
6c579a1
feat(gpui): refresh editor action icons
richiemcilroy Sep 13, 2026
a61d6ee
feat(gpui): add clip merging naming and local audio settings
richiemcilroy Sep 13, 2026
ca5ce00
fix(gpui): refit 3D motion when trimming shots
richiemcilroy Sep 13, 2026
2a326ca
fix(gpui): preserve preview selection when the pointer leaves
richiemcilroy Sep 13, 2026
08022a7
feat(gpui): redesign the crop dialog and inspector
richiemcilroy Sep 13, 2026
9972067
feat(gpui): add text preset styling and animation controls
richiemcilroy Sep 13, 2026
9a44a54
feat(gpui): add 3D camera shot panels and look controls
richiemcilroy Sep 13, 2026
ec8dc48
feat(gpui): expose Studio Sound isolation controls
richiemcilroy Sep 13, 2026
eb74b1f
feat(gpui): connect clip and 3D sidebar controls
richiemcilroy Sep 13, 2026
52eb17e
feat(gpui): add timeline shot previews and clip indicators
richiemcilroy Sep 13, 2026
355fe50
feat(gpui): add automatic scenes and shot insertion
richiemcilroy Sep 13, 2026
64aa05d
feat(gpui): integrate clip menus and 3D editor interactions
richiemcilroy Sep 13, 2026
01a6770
feat(gpui): refresh export controls and measured estimates
richiemcilroy Sep 13, 2026
97e4d27
test(gpui): extend editor interaction preview drivers
richiemcilroy Sep 13, 2026
01f2bd6
test(rendering): initialize camera fixtures without reassignment
richiemcilroy Sep 13, 2026
39cee33
test(recording): initialize placement fixtures without reassignment
richiemcilroy Sep 13, 2026
3fb4ff8
test(export): initialize cursor project fixtures without reassignment
richiemcilroy Sep 13, 2026
ac15f79
fix(gpui): ripple 3D shots when removing clip transitions
richiemcilroy Sep 13, 2026
c913951
fix(audio): initialize buffer model ownership before cleanup
richiemcilroy Sep 13, 2026
51a0e7a
fix(audio): link RNNoise SIMD archives after the core
richiemcilroy Sep 13, 2026
7f00b80
test(audio): exercise non-silent RNNoise inference
richiemcilroy Sep 13, 2026
62ac357
style(editor): remove narrative comments from the 3D panel
richiemcilroy Sep 13, 2026
fe1cb8c
refactor(editor): use kebab-case for the 3D panel filename
richiemcilroy Sep 13, 2026
b6f2b9e
test(recording): tolerate runner delays in queue recovery
richiemcilroy Sep 13, 2026
6a9f6c1
feat: expand desktop editing, Studio Sound, and camera effects
richiemcilroy Sep 13, 2026
542df22
test: add desktop benchmark lifecycle controls
richiemcilroy Sep 14, 2026
099c3f8
fix: measure complete desktop process groups accurately
richiemcilroy Sep 14, 2026
d57b535
improve: write muxer packets without temporary media copies
richiemcilroy Sep 14, 2026
a7cc91c
improve: read muxer payloads into their final packet buffers
richiemcilroy Sep 14, 2026
41eadf1
fix: release WebGPU devices after failed initialization
richiemcilroy Sep 14, 2026
a629cfd
improve: retire finalized Studio originals after readers close
richiemcilroy Sep 14, 2026
018a2db
improve: share packed editor frames across WebSocket sends
richiemcilroy Sep 14, 2026
b6151b0
chore: prepare desktop 0.6.1
richiemcilroy Sep 14, 2026
b5babd6
improve: reduce desktop media copying and retained storage (#2291)
richiemcilroy Sep 14, 2026
45bebe7
chore: keep desktop release at 0.6.0
richiemcilroy Sep 14, 2026
ab8c338
refactor: remove expanded main window
richiemcilroy Sep 14, 2026
98abbcf
fix Windows GPUI export and decoder shutdown
richiemcilroy Sep 14, 2026
b4baba7
fix: harden classic app handoff
richiemcilroy Sep 14, 2026
9bea505
Merge branch 'main' of https://github.com/CapSoftware/Cap
richiemcilroy Sep 14, 2026
5020311
fix(desktop): stop the target picker overlay crashing and Esc freezin…
richiemcilroy Sep 14, 2026
fa84550
fix(desktop): stop upload verification from blocking app quit
richiemcilroy Sep 14, 2026
903ea75
fix(desktop): start recording the instant the start cue ends
richiemcilroy Sep 14, 2026
dae1789
fix(desktop): harden the primed recording start
richiemcilroy Sep 14, 2026
40a6b3f
ci(desktop): cut release build time with a saved rust cache, unified …
richiemcilroy Sep 14, 2026
9f6398a
fix(desktop): clamp primed input timing to the pipeline epoch
richiemcilroy Sep 14, 2026
1706d6b
improve(export): estimate size and time from one sparse sampled pass
richiemcilroy Sep 14, 2026
edb0747
feat(auth): add CAP_BLOCKED_SIGNUP_DOMAINS blocklist with a friendly …
richiemcilroy Sep 14, 2026
186bcb6
fix(desktop): retain overlay identity during playback
richiemcilroy Sep 15, 2026
f2ce23c
fix(desktop): preserve audio import targets and source bounds
richiemcilroy Sep 15, 2026
b64c961
fix(desktop): decode thumbnails at the requested clip time
richiemcilroy Sep 15, 2026
5b2308b
fix(desktop): center unsigned microphone meter samples
richiemcilroy Sep 15, 2026
78b57c1
fix(desktop): derive export eligibility from current background
richiemcilroy Sep 15, 2026
5fe96cf
fix(desktop): preserve imported wallpaper snapshots for history
richiemcilroy Sep 15, 2026
16e3904
fix(desktop): bound thumbnail decoding without caching partial frames
richiemcilroy Sep 15, 2026
8887fda
fix(desktop): skip stale audio copies after file selection
richiemcilroy Sep 15, 2026
b786e50
fix(recording): initialize absent start gates in test fixtures
richiemcilroy Sep 15, 2026
06cf3ae
Merge pull request #2295 from CapSoftware/fix/desktop-editor-regressions
richiemcilroy Sep 15, 2026
6cfdd17
fix: sanitize GPUI recording and screenshot bundle names
richiemcilroy Sep 15, 2026
67d9e43
v0.6
richiemcilroy Sep 15, 2026
93fe59e
fix: offer all Linux release download formats
richiemcilroy Sep 15, 2026
4d8c1fb
test: type Linux download fallback fixture
richiemcilroy Sep 15, 2026
07888aa
fix: show owner avatar in embed player (#2296)
richiemcilroy Sep 15, 2026
67f537c
feat: Cap v0.6 release blog post and homepage notice (#2297)
richiemcilroy Sep 15, 2026
162e086
Cap v0.6 marketing emails
richiemcilroy Sep 15, 2026
2bb9a00
improve: reduce Loops profile database queries
richiemcilroy Sep 15, 2026
20ba104
Remove Cal.com and replace with Google Calendar link
richiemcilroy Sep 15, 2026
94bd7b4
Handle legacy SSO checkout sessions
richiemcilroy Sep 15, 2026
967f157
feat: redesign the about page
richiemcilroy Sep 17, 2026
bbaae11
feat: painted sky with drifting clouds on the homepage hero (#2304)
richiemcilroy Sep 17, 2026
f9c85cd
fix: refine screenshot homepage headline
richiemcilroy Sep 17, 2026
b6e58d2
feat(web): redesign the pricing page
richiemcilroy Sep 17, 2026
c2ee42b
fix(web): keep the Cap Pro monthly note on one line
richiemcilroy Sep 17, 2026
d34acba
feat: add organization private sharing default and viewer invites
richiemcilroy Sep 17, 2026
23ea86a
fix: register recording viewer invitation email
richiemcilroy Sep 17, 2026
b2a4985
feat: add Traditional Chinese transcript translations
richiemcilroy Sep 22, 2026
219e9e2
feat: add Traditional Chinese transcript translations (#2333)
richiemcilroy Sep 22, 2026
ce004e9
feat: add hosted Cap MCP connector (#2332)
richiemcilroy Sep 22, 2026
ce785e7
fix: accept unset Loom import options from existing clients (#2335)
richiemcilroy Sep 22, 2026
5418936
chore: merge main and regenerate private sharing migration
richiemcilroy Sep 23, 2026
9395091
chore: format generated migration metadata
richiemcilroy Sep 23, 2026
b6c8de4
Merge pull request #2306 from CapSoftware/feature/organization-privat…
richiemcilroy Sep 23, 2026
56da066
fix(web): restore private screenshot viewing and share dialog layout
richiemcilroy Sep 23, 2026
8289e63
feat: add Sentry error monitoring to web app
richiemcilroy Sep 23, 2026
22bb2d9
perf: trim Sentry browser instrumentation
richiemcilroy Sep 24, 2026
886d0c4
Auto-merged main into improve/web-sentry-error-monitoring on deployment.
richiemcilroy Sep 24, 2026
2576544
chore: remove unused Webpack size option
richiemcilroy Sep 24, 2026
9f38892
Merge pull request #2342 from CapSoftware/improve/web-sentry-error-mo…
richiemcilroy Sep 24, 2026
2237aa8
fix: harden web recording and upload recovery (#2343)
richiemcilroy Sep 24, 2026
26e1a6d
feat(web): redesign OG images in the homepage sky style (#2338)
richiemcilroy Sep 24, 2026
119edf0
feat: add isolated Cap building workflow (#2347)
richiemcilroy Sep 24, 2026
b0616a4
feat(web): let share links start with captions off
ManthanNimodiya Sep 25, 2026
b33150e
fix(web): drop restating comments on captionsInitiallyOff props
ManthanNimodiya Sep 25, 2026
9b75677
feat(web): let share links start with captions off (#2348)
richiemcilroy Sep 25, 2026
b2b6ae4
feat: add Pro call to action buttons to shareable videos (#2349)
richiemcilroy Sep 25, 2026
03715c2
feat(web): resolve where a share page viewer's dashboard back link goes
richiemcilroy Sep 25, 2026
8e3a9eb
feat(web): add back to dashboard link and responsive action bar on sh…
richiemcilroy Sep 25, 2026
3898d2f
fix(web): switch to the Cap's organization before going back to the d…
richiemcilroy Sep 25, 2026
4e85c2c
chore(web): drop comments that restate share header code
richiemcilroy Sep 25, 2026
a4052ba
fix(web): only switch organization for an owner's My Caps they still …
richiemcilroy Sep 25, 2026
0c466d6
fix(web): switch organization before navigating and stay put when it …
richiemcilroy Sep 25, 2026
305f556
fix(web): type the share destination's organization id as an organisa…
richiemcilroy Sep 25, 2026
5266c6b
fix(web): open the owner's folder in the Cap's organization too
richiemcilroy Sep 25, 2026
5ea6fb9
chore(web): drop comments that narrate the share header layout
richiemcilroy Sep 25, 2026
40f44a8
Merge pull request #2352 from CapSoftware/building/share-page-dashboa…
richiemcilroy Sep 25, 2026
fa5d557
feat(render-farm): parallel GPU export farm with progressive HLS output
richiemcilroy Sep 25, 2026
6011f31
fix(render-farm): make task ownership, resume and GPU interop failure…
richiemcilroy Sep 25, 2026
991ce81
fix(render-farm): decode S3 listing entities in one pass
richiemcilroy Sep 25, 2026
d17a563
fix(rendering): stop Send inference at the Linux shared GPU buffers
richiemcilroy Sep 25, 2026
7fbf616
fix(render-farm): make dispatch and export recovery durable
richiemcilroy Sep 25, 2026
1c746cf
fix(render-farm): fetch both transition sources for chunk rendering
richiemcilroy Sep 25, 2026
c69994d
fix(rendering): release partial CUDA Vulkan allocations
richiemcilroy Sep 25, 2026
cb67839
perf(render-farm): skip the reservation write on a chunk's first disp…
richiemcilroy Sep 25, 2026
1042c6e
fix(render-farm): bound what a recording manifest can make the fleet …
richiemcilroy Sep 25, 2026
0daed1d
fix(render-farm): bound source MP4 sample tables by their boxes
richiemcilroy Sep 26, 2026
5c25675
fix(render-farm): accept only a dispatch's own HLS segments and re-si…
richiemcilroy Sep 26, 2026
5d7e5bd
fix(render-farm): hedge a chunk whose frames stop advancing and SIGKI…
richiemcilroy Sep 26, 2026
d0d7493
fix(render-farm): bind segment reports to the reporting dispatch
richiemcilroy Sep 26, 2026
3b64403
chore(render-farm): drop comments that restate field names
richiemcilroy Sep 26, 2026
c017678
fix(rendering): keep the blur result cache to render hosts
richiemcilroy Sep 26, 2026
8f4a360
Merge pull request #2356 from CapSoftware/building/render-farm-83a16bf3
richiemcilroy Sep 26, 2026
e5212a0
feat(render-farm): write another account's bucket and upload files wi…
richiemcilroy Sep 26, 2026
79e6fa6
feat(render-farm): export into a recording's folder with GPU source t…
richiemcilroy Sep 26, 2026
2d61c36
perf(render-farm): transcode sources with NVENC p1
richiemcilroy Sep 26, 2026
735aac5
perf(render-farm): remux H.264 sources with frequent keyframes instea…
richiemcilroy Sep 26, 2026
6c55e96
fix: block render callback redirects
richiemcilroy Sep 27, 2026
ff7acac
fix: revalidate cached recording source scope
richiemcilroy Sep 27, 2026
1028c83
fix: re-encode sources with reordered video frames
richiemcilroy Sep 27, 2026
0fd3a02
fix: verify transcode dispatch and stored output before completion
richiemcilroy Sep 27, 2026
3724271
fix: enforce raw source byte limits before transcoding
richiemcilroy Sep 27, 2026
583c26c
fix: preserve existing recordings and isolate export outputs
richiemcilroy Sep 27, 2026
de48abc
fix: cancel stalled source probes before encoding
richiemcilroy Sep 27, 2026
b7f39b7
chore: remove redundant transcode comments
richiemcilroy Sep 27, 2026
eb544f4
fix: reuse retained transcodes without requiring raw uploads
richiemcilroy Sep 27, 2026
20c2240
Merge pull request #2358 from CapSoftware/building/render-farm-web-sa…
richiemcilroy Sep 27, 2026
b215b9b
fix(recorder): align streamed multipart uploads for R2
richiemcilroy Sep 28, 2026
d27b296
fix(recorder): refresh R2 fix and verify repeated part slicing
richiemcilroy Sep 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
56 changes: 56 additions & 0 deletions .agents/skills/building/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
name: building
description: Build Cap features in isolated Git worktrees with PlanetScale development branches, shared dependency caches, recorded feature demonstrations, and plain-language pull requests. Use for /building or $building requests, including resuming an existing building session. Ordinary coding requests do not select this publishing workflow.
---

# Building Cap

Use `/building <request>` in Cursor or Claude Code, or `$building <request>` in Codex. Each invocation authorizes implementing the feature in a new worktree, provisioning its disposable development resources, running verification, recording and uploading a demonstration into the user's `PR's` Cap folder, and opening a pull request. Honor narrower user instructions. Merging and production deployment remain separate actions.

Use the repository containing the requested Cap project. Keep the original checkout, its index, branches, running services, and recordings untouched. This workflow replaces the shared-checkout mechanics of `$build`; do not invoke that skill inside this workflow.

The helper is `scripts/building.mjs` relative to this skill. Use its absolute path when working in a newly created worktree, which might predate the repository copy of this skill. Run `npm ci --prefix <skill-directory> --ignore-scripts --no-audit --no-fund` once if the provider dependencies are missing. `node <helper> help` lists commands. Read [editors.md](references/editors.md) when installing or checking discovery in another editor; all editors use the same scripts and session registry.

## Publication privacy

Use neutral GitHub metadata. Branch names, commit messages, PR titles/descriptions, comments, release notes, and demo titles must not mention Codex, Cursor, Claude, model names, or automated authorship. Use `building/<feature>-<id>` branches and conventional commit titles describing the actual change. Never add tool signatures, generated-by text, co-author trailers, or other attribution. This naming rule applies whichever editor runs the workflow.

Never put secrets, sensitive information, or real people's personal data in committed content, filenames, commit messages, GitHub PR titles/descriptions, comments, attachments, or linked demonstrations. This includes credentials, tokens, cookies, signed URLs, connection strings, customer names, email addresses, phone numbers, account identifiers, recordings, and private support or billing details. Choose public-safe feature names before creating branches, recipes, or video titles. Use synthetic fixtures and reserved example domains. Keep raw logs, local absolute paths, database/provider receipts, and session state out of Git and GitHub text; a private repository is not an exception.

Before every commit, inspect the exact staged diff and proposed message. Before every push, review all outgoing commits, including intermediate versions that a later commit removes. Before each GitHub write or Cap upload, inspect the final text or media actually being published. Summarize test outcomes in safe language instead of pasting commands or raw output; inspect screenshots, video frames, and audio too. Use an available secret scanner as an additional check, never as proof that personal data is absent. Use the user's established public Git identity and GitHub no-reply email rather than publishing a private author or committer email; do not alter shared Git configuration.

If anything sensitive appears or cannot be confidently classified, sanitize or replace it before proceeding. Do not publish first and clean it up later. If exposure has already occurred, stop further publication, report the affected artifact without repeating the value, and coordinate credential revocation and history cleanup rather than silently force-pushing. Do not silently redact application behavior or required source values; use configuration or synthetic fixtures and preserve the intended feature.

## Prepare and resume

Read the selected repository's instructions. Fetch the remote default branch without moving the original checkout. Run `new --repo <repo> --name <short-feature-name> --target web|desktop|gpui|fullstack --base <remote-default-ref>` and use the returned worktree for every source edit, generator, command, commit, and push. Resume with the existing session ID; do not create replacement resources after an uncertain response.

Read [environment.md](references/environment.md) before provisioning. Prefer the PlanetScale MCP to create the exact development branch named in the session, then run `database-attach`. The authenticated `database-create` helper is the fallback when that MCP is unavailable. Never attach production, staging, another session's branch, or production credentials. Create expiring credentials and seed the owned development branch. Generate migrations through Cap's existing generator; never edit generated SQL or metadata by hand.

Run short commands through the helper's `run` wrapper and long-lived servers through `serve` so inherited production integration credentials and unmanaged dotenv files cannot accidentally configure the feature. Explicitly configure only required test services. There is no automatic production fallback for storage, payments, email, OAuth, or media processing.

Read [desktop.md](references/desktop.md) when native crates or desktop applications are involved. Use Bun's shared package cache and private installations. Warm private native/build directories using copy-on-write only from a matching, idle checkout. Never symlink a writable `target`, whole `node_modules`, app profile, or user recording directory between worktrees.

## Implement and verify

Make the smallest complete change, trace its callers and platform behavior, and apply repository checks to the affected scope. Preserve an acceptance checklist including error states, permissions, and old data. Establish the demo's expected behavior before implementation; assertions must test that behavior, not just successful page loading.

Commit coherent changes in the owned worktree. Run final checks through `check` so successful results are bound to the committed SHA. Recheck against current remote main, including generated migration conflicts and deployment ordering. A successful Git merge simulation does not prove runtime compatibility.

Read [recording.md](references/recording.md) for the Daytona/Cap path. Use a tracked, reviewed feature recipe and an assertion-driven walkthrough of the actual change. Before credentialed capture, independently inspect source provenance, changed code and dependencies, recipe commands, and credential scope, then record the actual SHA-bound review with `capture-review`. Untrusted or fork-controlled code receives no credentials until that review is complete. Verify the resulting video's content and reviewer access in a browser before calling it a successful demonstration. Use `preview` for local feature browsing: each session gets a separate Chrome profile, preventing cookies and local storage from colliding across ports. Preserve failed evidence; never replace a failed Cap CLI capture with a different recorder without reporting the change.

For macOS/Windows-specific behavior, obtain evidence on that OS. Linux browser or native demonstrations do not establish other-platform behavior. Infrastructure-only changes can give a concrete nonvisual explanation and relevant test evidence instead of a staged visual demo.

## Publish

Create or reuse a draft PR for the owned branch, then record its URL using `pr`. Push only the feature branch without force. Keep the PR draft while required verification, video playback, native checks, or review remain incomplete. Do not let fork PR code run with provider or publishing credentials in privileged CI.

Upload the verified capture using `share`; the helper finds or creates `PR's` and moves the video there. An uncertain upload must be reconciled by its recorded title/ID, never blindly repeated. Write a short ELI5 file explaining the previous problem, the new behavior, and its benefit. `pr-body --eli5 <file>` produces a starting body with the recording and current-SHA checks. Add factual migration notes, platform coverage, and remaining limitations; remove limitations only after verification. Use `gh pr edit --body-file`, preserving unrelated reviewer-authored content.

Use the installed `greptile-pr-loop` skill when available, fixing actionable findings through its stop condition. Any changed commit invalidates old evidence: rerun affected checks, update the recording, and review the final PR head. In Codex, attach the created PR to the current task using `attach_artifact` when available; Cursor and Claude Code can report the GitHub URL directly. These editor integrations are optional; resource management uses the shared CLI. Mark it ready only after the required gates pass; otherwise report the concrete blocker and keep the draft.

## Finish

Delete owned Daytona sandboxes after evidence is downloaded; the helper also sets expiry limits. After the PR is published, required checks pass, and the Cap upload is verified playable and accessible, run `finish` automatically. It stops owned server processes and removes the disposable development database and clean, published worktree while the PR remains open. Do not keep paid previews running unless the user asks for one. Keep recordings, Git branches, receipts, and shared caches. `resume` recreates the worktree from its retained feature branch; reprovision and reseed its development database for follow-up work. `close` also supports cleanup after a PR is merged or closed. Never delete resources based on age alone or break a lock without checking its host, process, and pending operation.

Report the PR, Cap link, actual checks, unverified platforms, and retained resources. Do not call a scaffold, a passing compile, or an accepted upload end-to-end success.
4 changes: 4 additions & 0 deletions .agents/skills/building/agents/openai.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
interface:
display_name: "Building Cap"
short_description: "Isolated worktrees and recorded Cap pull requests"
default_prompt: "Use $building to implement this Cap feature in an isolated worktree and prepare a verified pull request with an ELI5 and Cap recording."
Loading
Loading