Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
  •  
  •  
  •  
13 changes: 13 additions & 0 deletions THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,16 @@ Stack owns command mappings and package metadata, not the upstream skill impleme
| Stewdio blank-page skill | StewdioAI/blank-page | `cd42b37fa7cd0a5550e51f45cc8f82f63377b98c` | MIT |

Stack-Codex is Stack-owned repository content, bundled under `packages/stack-codex/content` so a GitHub clone contains the complete eight-skill package. Its package pin, `483015638591618e884d4c21f1fa037b645bb872e33acf063fa7a5f802c80df3`, is a deterministic SHA-256 digest over sorted relative paths and exact file bytes. It is not an external upstream and does not appear in the third-party table above.

## Stageshow

The pinned integration in `skills/imported/benjitaylor/stageshow` imports
Benji Taylor's Stageshow 0.1.0 from `benjitaylor/skills` at
`802057409787133703c56001080169e347305572`. Its MIT license, upstream notices,
retained artwork licenses/source records and CC0 photograph attribution remain
with the import. The MIT license does not cover app-bundle artwork or grant
trademark rights. App-bundle icons and five official-only brand SVGs are omitted;
copied phone glyph paths are replaced with independently authored generic
geometry. `source.json` and `STACK-REVIEW.md` record the exact subset, modifications
and representative isolated runtime validation. Local compiler/installer receipts
record managed-runtime availability; dependencies are not bundled into exports.
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
"skills/engineering/react-doctor/SKILL.md": "skills/engineering/react-doctor/capability.json",
"skills/engineering/simplify/SKILL.md": "skills/engineering/simplify/capability.json",
"skills/engineering/tdd/SKILL.md": "skills/engineering/tdd/capability.json",
"skills/imported/benjitaylor/stageshow/SKILL.md": "skills/imported/benjitaylor/stageshow/capability.json",
"skills/imported/david/david-agent-self-scheduling/SKILL.md": "skills/imported/david/david-agent-self-scheduling/capability.json",
"skills/imported/david/david-anti-sleep/SKILL.md": "skills/imported/david/david-anti-sleep/capability.json",
"skills/imported/david/david-brain-to-docs/SKILL.md": "skills/imported/david/david-brain-to-docs/capability.json",
Expand Down Expand Up @@ -199,6 +200,7 @@
"skills/engineering/react-doctor/SKILL.md",
"skills/engineering/simplify/SKILL.md",
"skills/engineering/tdd/SKILL.md",
"skills/imported/benjitaylor/stageshow/SKILL.md",
"skills/imported/david/david-agent-self-scheduling/SKILL.md",
"skills/imported/david/david-anti-sleep/SKILL.md",
"skills/imported/david/david-brain-to-docs/SKILL.md",
Expand Down Expand Up @@ -330,8 +332,8 @@
"missing": []
},
"counts": {
"callable_skills": 158,
"manifests": 158,
"callable_skills": 159,
"manifests": 159,
"package_exports": 20,
"private_declarations": 1,
"unclassified": 0
Expand Down
134 changes: 134 additions & 0 deletions artifacts/validation/stageshow/2026-11-01.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
{
"activation": {
"lifecycle": "candidate",
"performed": false,
"publish_targets": [],
"validation_status": "blocked"
},
"browser_launcher_sha256": "48e9ee06dc76b378bf6f3b701f72a844a2db33f5056086cd5ab2642fa394d271",
"browser_video_acceptance": {
"limitation": "film.mjs exports PNG stills/contact sheets; an actual video-recording and decode/visual inspection step is still required",
"required_checks": [
"matching official browser for locked playwright-core 1.48.2",
"browser sandbox active",
"no host mounts or private content",
"test network denial proven",
"representative still and loop",
"compact layout",
"reduced motion",
"truthful failed rehearsal status",
"caption escaping at runtime",
"video decodes with expected duration, dimensions, changing frames and final state",
"output containment",
"browser/server shutdown",
"independent visual review"
],
"status": "not run",
"video_artifact": null,
"visual_review": "not performed"
},
"capability": "stageshow",
"changes": [
"Preserved existing candidate, notices, omitted-asset policy, lockfile and two film.mjs patches.",
"Enabled chromiumSandbox explicitly for both browser-selection paths; no weaker retry.",
"Updated source hashes and validation-status prose without changing candidate lifecycle or publication targets."
],
"checks": [
{
"browser_launched": false,
"failures": 3,
"name": "launcher regression before fix",
"status": "expected failure",
"tests": 4
},
{
"browser_launched": false,
"command": "PATH=/opt/homebrew/opt/python@3.11/libexec/bin:$PATH /opt/homebrew/bin/python3.11 -m unittest tests.test_stageshow_intake tests.test_stageshow_browser_launcher tests.test_capability_registry tests.test_audit_capabilities tests.test_compile_runtime tests.test_install_runtime tests.test_documented_commands",
"failures": 0,
"name": "focused Stack tests",
"python": "3.11.15",
"status": "passed",
"tests": 59
},
{
"command": "node --check skills/imported/benjitaylor/stageshow/scripts/browser.mjs",
"name": "JavaScript syntax",
"status": "passed"
},
{
"command": "python3 scripts/build-capability-registry.py --check",
"name": "capability registry",
"status": "passed"
},
{
"command": "git diff --check -- skills/imported/benjitaylor/stageshow tests/test_stageshow_browser_launcher.py",
"name": "patch whitespace",
"status": "passed"
},
{
"name": "fresh-reader check",
"scope": "changed integration-contract prose and validation follow-up; one ambiguous phrase clarified",
"status": "passed"
},
{
"failures": 1,
"name": "initial default-Python test run",
"reason": "Python 3.9 lacked tomllib for an existing documented command; Python 3.11 rerun passed",
"status": "failed",
"tests": 59
},
{
"name": "bun skill guards",
"reason": "This Stack repository uses Python unittest and has no root Bun package or test:skill-guards script.",
"status": "not applicable"
},
{
"name": "Claude/Codex behavioral skill evaluation",
"reason": "Candidate remains inactive; changed prose records validation status and the sandbox patch. Cross-runtime video acceptance requires the blocked isolated setup.",
"status": "not run"
}
],
"imported_file_hashes_digest": "a9c16b987382624e4d7e80eec0990376488f73da1b3808e0000d725b6f1916ef",
"isolation_attempt": {
"booted": false,
"browser_launched": false,
"cleanup": "Unbooted VM definition deleted; Lima reports no instance",
"container_runtime": false,
"download_probes": [
{
"result": "curl exit 6: could not resolve host",
"url": "https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-genericcloud-arm64.qcow2"
},
{
"result": "curl exit 6: could not resolve host",
"url": "https://mcr.microsoft.com/v2/playwright/manifests/v1.48.2-jammy"
}
],
"host_mounts": [],
"host_public_key_loading": false,
"proxy_environment_propagation": false,
"result": "VM creation stopped on a denied default image-cache write",
"ssh_agent_forwarding": false,
"test_listener_started": false,
"vm": "Lima plain-mode Debian 12 arm64"
},
"prior_validation": {
"browser_video": "user-reported incomplete after guest DNS failure; prior VM removed",
"checked_in_review": "skills/imported/benjitaylor/stageshow/STACK-REVIEW.md",
"install_typecheck_build": "user-reported pass; newer receipts not located; not independently rerun",
"prohibited_diagnostic": "not retried; no privilege elevation or bypass attempted"
},
"recorded_at": "2026-11-01T22:24:22.668125+00:00",
"resume_requirements": [
"Use a supported runner that permits setup-only official VM/browser/dependency downloads and VM image-cache writes, or supply a verified offline image/bundle.",
"Bind browser and dependency assets to the existing lockfile and verify their identity before executing them.",
"Copy only the pinned candidate and synthetic fixture into a fresh isolated environment; enforce and prove network denial before any test execution.",
"Keep the browser sandbox enabled and stop on isolation failure; do not reuse signed-in browsers, alter host security controls or retry the denied diagnostic.",
"Record and inspect a real video before changing the hold. Review catalog activation separately from runtime publication; publication is prohibited in this task."
],
"schema_version": 1,
"source_state": "existing staged candidate plus uncommitted follow-up; no commit or publication performed",
"stack_base_commit": "0da4f2e3c8598bbb807db2a90e014366094124eb",
"status": "blocked-before-browser-video-validation",
"upstream_revision": "802057409787133703c56001080169e347305572"
}
98 changes: 98 additions & 0 deletions artifacts/validation/stageshow/2026-11-09-accepted.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
{
"artifact_root": "artifacts/validation/stageshow/local-2026-11-09",
"artifacts_sha256": {
"outputs/browser-acceptance.json": "83abf1e2f03d92f7af74fb45c010440c320787ea28f7afd91ddddb64d3326ae9",
"outputs/caption-audit.json": "7d97a352845fc22bcf3c53b00108e159d965beacd2e1ba222a7d70ce078e040d",
"outputs/failure.json": "4d472b836a19c52239e078dbf26ef565705b0b697c07326dbe65babf8b7adedd",
"outputs/loop-probe-final.json": "3e03a910ad32941a329985ee5e77b558bfbdfc2c61076f7d69024341c69c37fb",
"outputs/loop-ui.mp4": "d06a9415c941242b355bcfe0cb253582cd54671153e6a96cd4a18444981cbd82",
"outputs/loop-video.json": "69ee8648dc6cadf67de36cff4966eb0d4935872bbdfb7874cd0dddaf4355e09f",
"outputs/representative-compact.json": "7230a75fd54713b135cb75ddee4c803643ea983971038b1abee92807131c7f1d",
"outputs/representative-loop-final.json": "4182b772d8fe7d1e627a496359d636cbf6287b52957eb912b67f2a985a3f6246",
"outputs/representative-still.json": "7230a75fd54713b135cb75ddee4c803643ea983971038b1abee92807131c7f1d",
"outputs/sample-ui.mp4": "407a130327cdce1833285fbe592c4c0ff95b2ac7e004718a756032204be8b320",
"outputs/video-probe-final.json": "6e85b73639860f8a240a93510aa5a147b08318ebab8cae488e57fdc8bc02088b"
},
"capability": "stageshow",
"checks": {
"build": "passed offline in VM",
"caption_escape": "markup label round-tripped; zero inserted tags or executed handlers",
"compact": "390px, 358px design, no overflow; passed gate",
"dependencies": "exact lockfile npm ci --ignore-scripts; Debian signed-index version pins and SHA-256 list retained",
"failed_rehearsal": "exit 1 preserved in process and report; no success claim",
"official_node_sha256": "1c4a9933a5e45bc88f54f70b5f91232c127ec49f1a5989d23fb85824c7adf9b7",
"output_containment": "all named exports under approved validation outputs; no source helper/lockfile mutation, output symlink or HTTP listener; arbitrary hostile --out paths are not a supported safety boundary",
"reduced_motion": "wide and compact posters stable; final success state",
"representative_loop": "complete sampling, no findings, rehearsal passed with unchanged thresholds",
"representative_still": "passed gate",
"shutdown": "no remaining browser/node/listener processes; VM stopped",
"typecheck": "passed offline in VM",
"video": {
"decode": "both entire streams decoded without errors",
"loop": {
"codec": "h264",
"decoded_frames": 200,
"dimensions": [
640,
360
],
"duration_seconds": 8,
"fps": 25,
"states": "saved/reset twice"
},
"native_recording": "official Playwright VP8 encoder; native tail trimmed when producing declared-duration H.264 exports",
"sample": {
"codec": "h264",
"decoded_frames": 300,
"dimensions": [
640,
480
],
"duration_seconds": 12,
"final_state": "Account created",
"fps": 25
},
"visual_inspection": "decoded sequence, final frame and loop contact sheets inspected by primary; fresh independent review recorded separately"
},
"visual_review": "Primary decoded-frame inspection and independent Sol High review verified both MP4s; corrected still/compact evidence reviewed separately before install."
},
"isolation": {
"chromium_sandbox": "verified PID namespace and additional renderer seccomp; no unsandboxed retry",
"content": "fully inlined synthetic local file pages; no listener",
"environment": "allowlisted env -i",
"host_mounts": [],
"image_digest": "sha512:52eb678130e85a9bf9f3cf4f7181e060fa60a5db45373717474c5ff9305645c5e6cab8b05ca042bcfa7921d2ca29cf9fd2e815f75abe2d168557ad7207af127b",
"network_probes": {
"external_browser_navigation": "denied",
"ipv4": "EPERM",
"ipv6": "EPERM"
},
"private_credentials": false,
"privilege_elevation_used": false,
"signed_in_state": false,
"test_network": "inherited seccomp denies all non-UNIX/non-netlink sockets and io_uring_setup; NNP; no inherited sockets",
"vm": "Lima 2.2.0 VZ Debian 12 arm64"
},
"limitations": [
"Representative routes only; full retained example catalog not certified.",
"Exploratory form/loading helper scans reported sampling gaps and/or compact framing findings; preserved as failed/inconclusive.",
"film.mjs exports PNGs; encoded video remains a separate recording/decode step.",
"Host-side preparatory typecheck/build ran before VM acceptance; authoritative typecheck/build were repeated under the VM offline rule."
],
"recorded_date": "2026-11-09",
"schema_version": 1,
"scope": "representative synthetic browser/video validation; local runtime installation separately receipted",
"source": {
"browser_revision": "1140",
"browser_version": "130.0.6723.31",
"helper_sha256": {
"package-lock.json": "092ee4aa51f4f38df3c5ba35708ef288a533a6c9b7078fcb5b71897d6ac5e731",
"scripts/browser.mjs": "48e9ee06dc76b378bf6f3b701f72a844a2db33f5056086cd5ab2642fa394d271",
"scripts/film.mjs": "354200847958a4573eeb0da9ba4e061fc4f2ec1eecebf3df9b91f05e747f08a3"
},
"playwright_core": "1.48.2",
"upstream_revision": "802057409787133703c56001080169e347305572"
},
"status": "passed",
"thread_id": "01a1c1bb-c674-7013-a1ee-dcaf8ede8354"
}
53 changes: 53 additions & 0 deletions artifacts/validation/stageshow/2026-11-09.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
{
"activation_performed": false,
"authorization": "User requested local availability in Claude and Codex. Isolated validation and local installation are authorized; no additional confirmation of those actions is required.",
"browser_video_test": "not run",
"capability": "stageshow",
"observed_blockers": [
{
"check": "dependency setup",
"result": "curl exit 6: registry.npmjs.org could not be resolved"
},
{
"check": "offline validation assets",
"result": "No cached matching browser or Lima VM image; package node_modules absent"
},
{
"check": "normal runtime compiler",
"result": "refusing to stage a dirty source tree"
},
{
"check": "runtime stage write probe",
"result": "Operation not permitted"
},
{
"check": "Claude runtime parent write probe",
"result": "Operation not permitted"
},
{
"check": "Codex runtime parent write probe",
"result": "Operation not permitted"
},
{
"check": "runtime receipt write probe",
"result": "Operation not permitted"
}
],
"preserved": {
"browser_sandbox_required": true,
"candidate_lifecycle": true,
"isolated_video_acceptance_required": true,
"prior_changes": true,
"prior_receipt": "artifacts/validation/stageshow/2026-11-01.json"
},
"recorded_at": "2026-11-09T19:09:17.331164+00:00",
"resume": [
"Run setup with access to official dependency and browser-image hosts, or supply verified offline assets.",
"Validate a real synthetic UI video in isolation with the browser sandbox enabled and test network access denied.",
"Prepare a clean isolated source commit containing only the reviewed integration changes; preserve the dirty working checkout.",
"Use the normal compiler and atomic installer with permitted runtime staging, Claude/Codex target and receipt writes."
],
"runtime_installation_performed": false,
"schema_version": 1,
"status": "blocked-by-execution-environment"
}
21 changes: 21 additions & 0 deletions artifacts/validation/stageshow/local-2026-11-09/audit-hooks.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// Validation-only observer: actual film source/launcher stay byte-for-byte intact.
import {chromium} from 'playwright-core';
import fs from 'node:fs';
import assert from 'node:assert/strict';
const original=chromium.launch.bind(chromium);
chromium.launch=async options=>{
assert.equal(options.chromiumSandbox,true);
const browser=await original(options);const newPage=browser.newPage.bind(browser);
browser.newPage=async options=>{
const page=await newPage(options);const setContent=page.setContent.bind(page);
page.setContent=async html=>{
const result=await setContent(html);
const payloads=await page.locator('figcaption').allTextContents();
const injected=await page.locator('figcaption img, figcaption script').count();
const executed=await page.evaluate(()=>window.__captionExecuted||0);
assert.equal(injected,0);assert.equal(executed,0);
if(process.env.CAPTION_AUDIT)fs.writeFileSync(process.env.CAPTION_AUDIT,JSON.stringify({payloads,injected,executed,escaped:html.includes('<img')},null,2));
return result;
};return page;
};return browser;
};
Loading
Loading