This repository uses issue-first, branch-first delivery. Start every non-trivial code, docs, dashboard, lab, or release slice by checking the current repo state, creating or identifying a GitHub issue, and keeping unrelated user work out of the branch.
- Work from
/Users/jonathanweinberg/Documents/Codex_ShareSurfer. - Preserve unrelated untracked files and user edits.
- Use
codex/branch names. - Use focused commits that reference the issue number.
- Post implementation and closeout comments with
gh issue comment --body-file. - Do not use
prlctlfor ShareSurfer work. - Keep public docs amateur-admin friendly and free of internal tool/provenance labels.
- Keep proof classes explicit: local
pwshsmoke, Windows PowerShell 5.1 CI, archived enterprise proof refresh, and fresh Windows/AD live-lab validation are different evidence classes.
$sharesurfer-delivery-flow: normal issue-first ShareSurfer delivery.$sharesurfer-release-orchestrator: prerelease planning, PR/merge, package, publish, and release closeout.$sharesurfer-release-worker: bounded lower-cost/Spark release audits, notes, CI summaries, and asset checks.$sharesurfer-validation-output-control: long-running validation with log capture and concise summaries.$gh-issue-comment-format: clean GitHub issue comments using body files.
The main thread owns judgment, credentials, merge, publish, and exception handling. Do not spend the most capable model babysitting every slow or verbose command when a bounded worker can gather evidence.
Good tasks for lower-cost subagents such as 5.3-Codex-Spark:
- stale release version/path audits
- quickstart/docs consistency checks
- release-notes draft from issue/PR/diff
- ZIP, hash, manifest, and dependency-age report inspection
- CI status polling and summarization
- validation log summarization
Keep these main-thread only unless Jonathan explicitly delegates them:
- token prompting or credential handling
- deciding to skip or reinterpret a failed gate
- merging PRs
- creating, editing, or deleting GitHub releases
- mutating live Windows/AD lab state
- posting public closeout comments when the final wording matters
Long gates should write logs under /private/tmp/sharesurfer-validation-<timestamp>/ and report only command, exit code, duration, pass/fail summary, failure tail, and log path.
Do not stream full successful logs into chat. For ShareSurfer releases, run heavy gates sequentially unless the user explicitly chooses wall-clock speed over stability:
git diff --check- stale version/path
rg pwsh -NoLogo -NoProfile -File tests/Invoke-ShareSurferTests.ps1npm --prefix interface/standalone-dashboard run testnpm --prefix interface/standalone-dashboard run buildpwsh -NoLogo -NoProfile -File scripts/Test-ShareSurferReleaseReadiness.ps1 ...- final
scripts/New-ShareSurferRelease.ps1from mergedmain
Avoid running the full PowerShell suite and dashboard Vitest suite concurrently during release work. A prior release saw all Vitest tests pass but the process exit nonzero from a worker update timeout while the PowerShell suite was also running.
Release notes must be complete enough for a first-time operator to understand:
- what changed
- package contents
- validation performed
- unsigned pre-1.0 status
- dashboard template versus packaged export behavior
- dependency-age policy result
- ZIP SHA256
The expected release assets are the versioned ZIP and .zip.sha256 sidecar. The ZIP should contain release-manifest.json, RELEASE.md, SHA256SUMS.txt, dependency-age-report.json, module files, scripts, docs, and prebuilt standalone dashboard template assets.
Use goal-shaped prompts for subagents. Keep them bounded and explicit:
/goal Use $sharesurfer-release-worker at /Users/jonathanweinberg/.codex/skills/sharesurfer-release-worker to audit ShareSurfer release metadata and public docs for stale version/path references. Work read-only. Return a concise markdown report with files, line numbers, and suggested fixes. Do not commit, push, comment on GitHub, or publish anything.
For validation logs:
/goal Use $sharesurfer-validation-output-control at /Users/jonathanweinberg/.codex/skills/sharesurfer-validation-output-control to run the ShareSurfer dashboard tests with output captured under /private/tmp. Return final pass/fail, duration, and the log path. Do not modify repo files.