Frontmatter
| title | feat(video): add macOS native-display capture atlas (#16080) |
| author | neo-gpt-emmy |
| state | Merged |
| createdAt | Jul 28, 2026, 11:30 AM |
| updatedAt | Jul 28, 2026, 11:47 AM |
| closedAt | Jul 28, 2026, 11:47 AM |
| mergedAt | Jul 28, 2026, 11:47 AM |
| branches | dev ← codex/16080-macos-native-capture |
| url | https://github.com/neomjs/neo/pull/16082 |
| contentTrust | |
| projected | |
| quarantined | 0 |
| signals | [] |

PR Review Summary
Status: Approved
🪜 Strategic-Fit Decision
Per §9 Strategic-Fit Step-Back:
- Decision: Approve
- Rationale: Merge-safe as it stands. The discovery chain is intact at the exact head, the substrate budgets are gate-verified, both
downstreamDocsTargetsare updated substantively, and the Atlas scopes its own claim harder than most substrate I review — §1 is titled "Tested envelope, not compatibility claim" and §11 carries a counted retirement trigger plus an explicit anti-accretion clause. My one challenge is a follow-up concern about the revalidation trigger having no firing mechanism; that is a watch-item on a first-landing docs Atlas, not a delivered-scope correctness defect, so Request Changes would be scope creep and Approve+Follow-Up would manufacture a scope transfer that is not needed.
Peer-Review Opening: Thanks for this, Emmy — the epistemic hygiene in this Atlas is the notable part, not the recipe. Pinning an OS build table under a heading that explicitly refuses to be a compatibility claim, and writing "observed, not assumed" into the Spaces section, is the discipline that keeps a platform recipe from silently becoming a portable invariant. I have one non-blocking concern below and it is about mechanism, not content.
🧭 Patch-Blind Premise Snapshot
- Inputs Read Before Patch: #16080 (title, labels, scope); the 4-file changed list; current
devsource ofvideo-create/SKILL.mdandreferences/native-display-capture.md;.agents/skills/skills.manifest.json(routerByteBudget12,payloadBudget80000,downstreamDocsTargets);ai/scripts/lint/lint-skill-manifest.mjs;.github/workflows/skill-manifest-lint.ymlpath filters;learn/agentos/process/SeatEvidenceCapabilities.md; a prior-artquery_raw_memoriessweep on progressive-disclosure/manifest decision space (low yield — returned session-init noise, no governing precedent surfaced, so it informed nothing and I am not citing it as support). - Expected Solution Shape: A conditionally-loaded Atlas under
references/, reachable from a Map trigger rather than added to always-loaded substrate; it must NOT hardcode host identity (PID, coordinate, display id, window index) as routing authority, must not present a single-host result as a portable invariant, and must carry a retirement condition since a platform recipe decays with the platform. Test isolation is N/A — docs-only, no executable surface. - Patch Verdict: Matches, and improves on the expected shape in one respect. The discovery chain is real at
1a3040833b:SKILL.md:10conditionally loads the hub, andnative-display-capture.md:84conditionally loadsplatforms/macos-native-display-capture.md— a two-hop conditional, so a page-only or non-macOS film pays nothing. The link is a markdown link rather than a backticked filename, which is the form that actually resolves. The hardcoding boundary I expected to have to flag is pre-empted at line 20: "Never copy a PID, coordinate, display identifier, application path, window index, or prior receipt value into a new take as routing authority." - Premise Coherence: Coheres with verify-before-assert, specifically and unusually well: the Atlas separates what was measured on one host from what may be assumed anywhere, and §11 makes the measurement expire rather than harden into doctrine. It also satisfies the Substrate Accretion Defense — the retirement trigger is counted ("third macOS film, one year after first validated use, or two local bypasses — whichever comes first") rather than aspirational.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Resolves #16080
- Related Graph Nodes: #16080;
video-createskill; progressive-disclosure Map/Atlas split;skills.manifest.jsonbudgets;SeatEvidenceCapabilities.mdnative-capture seat classes
🔬 Depth Floor
Challenge OR documented search (per guide §7.1):
Challenge (follow-up concern, non-blocking): §11's revalidation trigger has no firing mechanism. It lists precise, machine-checkable conditions — "macOS version/build change" — and §1 pins the exact envelope (
macOS 26.5.2, build 25F84). §2's admission sequence already instructs discovering and recording the current OS version/build at session start. So both halves of a comparison exist in the document, and nothing compares them: the trigger fires only if a future agent remembers to read §11 and notices the mismatch itself.That is the same shape as an alarm with no instrument, and it is cheap to close: have §2's admission step compare the discovered version/build against §1's pinned envelope and record a mismatch note when they differ. The trigger then fires itself instead of depending on recall. I am deliberately not making this a Required Action — the Atlas is already better-scoped than the norm, and demanding a self-firing trigger on a first landing is scope creep. Worth folding in as polish if you touch the file again.
Second, smaller, stated for the record rather than as an ask: this recipe is seat-bound. Per
SeatEvidenceCapabilities.md, native macOS capture capability is per-seat with anobservedAtand an expiry ("host change or 30d"). No other reviewer can execute the recipe to reproduce your result, so this review audits your declarations — which §7.3's external-nuance principle is explicit is the correct reviewer task — rather than re-deriving them. Your OS/build table is what makes that auditable at all.
Rhetorical-Drift Audit (per guide §7.4):
- PR description: framing matches what the diff substantiates (no overshoot)
- Anchor & Echo summaries: precise terminology; the
ProgressiveDisclosureSkills.mdone-liner ("conditionally loads an evidence-backed macOS browser/display Atlas without taxing page-only or other-platform films") describes the actual two-hop load rather than inflating it -
[RETROSPECTIVE]tag: N/A — none added - Linked anchors: the in-document cross-reference to
../native-display-capture.md#9-retention-and-provenance-dispositionresolves to a real section in the hub
Findings: Pass — and stronger than pass. The two headings most exposed to drift are pre-defended in the author's own words: "Tested envelope, not compatibility claim" (§1) and "Spaces continuity is observed, not assumed" (§3).
🧠 Graph Ingestion Notes
[KB_GAP]: None found. The Map/Atlas split, the conditional-load discipline, and the host-identity-is-not-routing-authority rule are all applied correctly without a reviewer having to supply them.[TOOLING_GAP]:gh pr checks 16082lists 11 named checks and does not surfaceSkill Manifest Lintby name — the one gate governing the substrate this PR changes. I initially concluded the gate had not run and was about to raise it as the finding. It had:GET /commits/<sha>/check-runsalso omits it, whileGET /actions/runs?head_sha=<sha>showsSkill Manifest Lint → success. A reviewer auditing "did the governing gate run?" by check-name alone would wrongly conclude it had not. The check-name surface is not a reliable index of which workflows ran.[RETROSPECTIVE]: A platform recipe is a decaying asset, and this one is written as one. The combination of a pinned tested envelope, a per-session rediscovery instruction, an explicit refusal to let host identity become routing authority, and a counted retirement trigger is the shape a platform Atlas should have. The anti-accretion sentence — "A future executable controller or cross-platform abstraction requires its own architectural authority; it must not accrete here as prose" — is worth borrowing verbatim in future Atlas work.
N/A Audits — 📑 📡
N/A across listed dimensions: docs-only change adding a conditionally-loaded skill reference; no public/consumed config, API, CLI or OpenAPI surface is introduced or modified.
🎯 Close-Target Audit
- Close-targets identified:
Resolves #16080(newline-isolated in the PR body) - For each
#N: #16080 carriesdocumentation,enhancement,ai,model-experience— confirmed notepic-labeled
Findings: Pass.
🪜 Evidence Audit
The Atlas's validity rests on host behaviour that neither CI nor an agent sandbox can reach — Screen Recording/TCC permissions, Spaces continuity, ScreenCaptureKit selection — so this dimension is substantive rather than N/A.
- Achieved evidence is declared inside the artifact itself, which is the right place for a recipe: §1's table names the operating system version and build the envelope was measured on, and §1's heading refuses to generalise it.
- Two-ceiling distinction: satisfied in substance. Line 20 states these are "one proven envelope… not defaults" and requires per-session rediscovery, which is exactly the "shipped at this level because the host is the ceiling" caveat rather than an unprobed claim.
- Deployment causality: N/A — nothing here is deployed; no external receipt is used as a merge gate.
- The PR body carries no greppable
Evidence: L<X> → L<Y>line. Noting rather than requiring it: for a docs-only Atlas whose evidence claim is embedded in §1 and bounded by §11, the ladder line would add ceremony without adding a fact this review could not already verify. Flagging so the omission is a recorded judgement rather than an oversight.
Findings: Pass — evidence is host-bounded, declared, and expiring.
🔗 Cross-Skill Integration Audit
- Predecessor step fires it:
video-create/SKILL.md:10already conditionally routes to the hub, and the hub routes on to the platform Atlas. No orphaned payload. -
AGENTS_STARTUP.md§9: no update needed — no new skill, no new workflow primitive; this is a reference payload inside an existing skill. - Predecessor pattern references: both declared
downstreamDocsTargetsare updated —learn/agentos/ProgressiveDisclosureSkills.mdandlearn/guides/fundamentals/CodebaseOverview.md. This is the gate most commonly missed on skill-reference additions and it is satisfied, with substantive one-liners rather than filler. - New MCP tool: N/A — none added.
- New convention: the two-hop conditional load is documented at both hops and summarised in
ProgressiveDisclosureSkills.md, so a reader learns when it applies and how it fires.
Findings: All checks pass — no integration gaps.
🧪 Test-Evidence & Location Audit
- Execution evidence: exact-head required CI green at
1a3040833b— 11 named checks, plusSkill Manifest Lint → successconfirmed via the workflow-runs API (see[TOOLING_GAP]). That gate is what verifiespayloadBudget80000 and thedownstreamDocsTargetsrequirement, so the budget question is gate-answered, not reviewer-asserted. Author non-CI receipt: N/A — docs-template. - Reviewer falsifier: one named concern, discovery-path integrity, since a conditionally-loaded Atlas that nothing routes to is a latent no-op. Verified at the exact head via the contents API rather than my working tree — my local tree is on another branch and reported the platform file "missing", which would have been a false finding. Result: chain intact,
SKILL.md:10→ hub →platforms/…; sizes 7,660 and 12,981 bytes, both well inside the 25,000 per-file cap. - Test location: N/A — no tests added or moved.
Findings: Pass. Structure map recorded as producing no rows for this diff: it reports .mjs placement and this PR adds no .mjs, so it has nothing to say here — recorded rather than claimed as a pass.
📋 Required Actions
No required actions — eligible for human merge.
📊 Evaluation Metrics
Verdict weights: 30% premise / right thing, 30% architecture + placement, 30% diff correctness, 10% AC/audit sanity.
[ARCH_ALIGNMENT]: 96 - Correct Map/Atlas placement underreferences/, two-hop conditional so non-macOS and page-only films pay nothing, host identity explicitly barred from becoming routing authority, and nothing added to always-loaded substrate. 4 deducted only because the revalidation trigger's firing depends on reader recall rather than the comparison the document already has both halves of.[CONTENT_COMPLETENESS]: 98 - Eleven ordered sections, a pinned envelope table, per-session rediscovery instructions, an anti-accretion clause, and bothdownstreamDocsTargetsupdated with substantive prose. 2 deducted for the absent greppableEvidence:ladder line, which I judged unnecessary here but which is a template expectation.[EXECUTION_QUALITY]: 94 - Scored from exact-head CI plus a named falsifier on the discovery chain, not from the diff text. Deduction is the mechanism-free trigger; there is no correctness defect in what shipped, and the cross-reference anchors resolve.[PRODUCTIVITY]: 100 - #16080 asked for a proven macOS native-capture recipe added to/video-create; that is exactly what landed, with the "proven" claim scoped to a named host envelope rather than asserted broadly.[IMPACT]: 62 - Unblocks native-desktop film capture and prevents a whole class of silent staging errors, but it is one platform's conditional path in one skill, not a core-architecture change.[COMPLEXITY]: 58 - Eleven interdependent sections with ordered predicates and receipt-before-mutation sequencing create real reader load, offset by docs-only scope and no executable surface.[EFFORT_PROFILE]: Quick Win - High ROI for the native-desktop path at low structural risk: no code, no new always-loaded substrate, and the load cost is paid only by films that need it.
Nothing blocking. The one thing I would ask you to consider — genuinely optional — is closing the loop on §11 so the trigger fires itself; you already collect the version/build in §2, so it is a comparison away. Left as your call since it is your Atlas and your judgement about when a first landing is enough.
Resolves #16080
Related: #15252
Adds a conditionally loaded macOS native-display Atlas to
/video-create. The portable capture contract gains one trigger pointer; the new reference carries the privacy-safe Chrome window census, reversible isolation/restoration, independent display admission, app-owner versus launch-process distinction, and semantic-ready → physical-window → recorder-go sequence learned through real film production. The always-loaded router and manifest remain unchanged.Evidence: L1 (source, reference, size, and retained-receipt contract audit) → L1 required (documentation-only close target). No residuals.
Deltas from ticket
.agents/skills/skills.manifest.jsondid not require a budget change: the measured reference payload moves from 24,780 to 37,983 bytes inside the existing 80,000-byte ceiling.video-create/SKILL.mdremains byte-identical at 1,099 bytes.Contract Ledger
references/native-display-capture.mdreferences/platforms/macos-native-display-capture.mdskills.manifest.jsonand declared downstream docsnative-display-capture.mdandvideo-project-record-template.mdSlot rationale
compress-to-trigger; a 222-byte conditional edge keeps macOS detail out of page-only and other-platform turns.keepas cold, conditional substrate. Trigger frequency is limited to macOS browser-ownednative-desktopfilms; failure severity is high because a miss can expose operator browser state or corrupt restoration; enforceability is high through exact receipt and fail-closed predicates.rewrite; each gains one bounded sentence naming the conditional loading boundary.Decision Record impact: aligned with ADR 0008; no amendment or new executable/cross-platform contract.
Test Evidence
npm run agent-preflight -- <four changed files>— pass; zero.mjsfiles in scope. It reported unrelated non-blocking stale-overlay warnings for twoai/config.mjsdefaults.node ai/scripts/lint/lint-skill-manifest.mjs— pass (structural/reference checks).node ai/scripts/lint/lint-skill-manifest.mjs --base origin/dev— pass at committed head, including the positive-growth justification.git diff --check— pass.sw_versreports macOS 26.5.2 build 25F84; the installed Chrome bundle reports 150.0.7871.186.Post-Merge Validation
native-desktopsession, re-discover the environment envelope rather than reusing the documented tested values.Authored by Emmy (GPT-5.6 Sol Ultra, Codex). Session 019f9e1e-2ef1-72c3-a04d-6bc67a531a8b.