Update to Nightshift
Snapshot Oct 29, 2026 · 18:35 UTC · version 0.26.1
Collection source: downloaded plugin package. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.
Instructions updated for schedule
Full description — Now says: Prepare instructions for an owner-requested future Nightshift run without registering a scheduler or promising background recovery.
Observed in instructions or declared skills. Runtime behavior has not been tested.
Up to 10 plugins free · no card required.
All fields and original values.
Full description
Sep 30, 2026 · 23:14 UTC
Print the launchd, cron or Task Scheduler config that starts a shift at a fixed time; registers nothing.
Oct 29, 2026 · 18:35 UTC
Prepare instructions for an owner-requested future Nightshift run without registering a scheduler or promising background recovery.
Skill instructions
Sep 30, 2026 · 23:14 UTC
Print the launchd, cron or Task Scheduler config that starts a shift at a fixed time; registers nothing. license: MIT Get the host-opened project ready to start on a clock, then hand the owner the config. Work through these in order; eac...
Oct 29, 2026 · 18:35 UTC
"Prepare instructions for an owner-requested future Nightshift run without registering a scheduler or promising background recovery." # Schedule Read the [workflow](../nightshift/references/workflow.md). Explain that this package cannot ...
Compare saved observations
Download comparison JSONSKILL.md text changes
− removed · + added
--- before +++ after @@ -1,100 +1,16 @@ --- name: schedule -description: Print the launchd, cron or Task Scheduler config that starts a shift at a fixed time; registers nothing. -license: MIT +description: "Prepare instructions for an owner-requested future Nightshift run without registering a scheduler or promising background recovery." --- -Get the host-opened project ready to start on a clock, then hand the owner the config. Work through -these in order; each one is a check the owner would otherwise discover at 4am. +# Schedule -Resolve the installed plugin root to an absolute `$NIGHTSHIFT_PLUGIN_ROOT` — `${CLAUDE_PLUGIN_ROOT}` -on Claude Code, `$PLUGIN_ROOT` on Codex when set, otherwise the absolute path this skill was -attached from (`skills/schedule/SKILL.md`). Run every command below through -`"$NIGHTSHIFT_PLUGIN_ROOT/runtime/ns"` — native Windows: `& "$NIGHTSHIFT_PLUGIN_ROOT\runtime\windows\ns.ps1"` -in the PowerShell tool, same verbs — which resolves the host and the workspace; `ns help` lists the -verbs, and `ns bind` prints the six resolved facts (`TASK_ROOT`, `NIGHTSHIFT_WORKSPACE`, `NS`, -`NIGHTSHIFT_PLUGIN_ROOT`, `HOST`, `SOURCE`); `$NS` below is that `NS`. Never a bare relative path: the working -directory persists between calls. Each `$NS/...` path below is where the current layout keeps that file; -`ns path <key>` prints where this workspace keeps it, and `ns path --list` names every key. - -## 1. Is there a site at all? - -No `$NS/` — stop and point at Setup (`/nightshift:setup` on Claude Code, or ask Nightshift -to set up on Codex). Nothing below is meaningful without it. - -Read `$NS/run/work-mode`. Artifact mode is a persistent folder, not a Git repository; the scheduled -agent still starts in that work target. A malformed mode or a scratch work target is a refuse — -fix it with Setup before installing a job. In artifact mode, refuse to print or install a job when `$NS/receipts` exists but is not a usable directory. -If `$NS/run/work-mode` is missing and Setup would propose artifact, refuse to print or install a job; a scheduled start will refuse to arm. -If the work target cannot be resolved, refuse to print or install a job; a scheduled start will refuse to arm. - -## 2. Is there work queued? - -A scheduled start works the punch list it finds and **promotes nothing** — parked work orders and -drafting-table entries stay exactly where they are. So an empty `## Items` means the scheduled run -does nothing at all, and this is the moment to fix that, not 4am. - -Count the open `- [ ]` in `$NS/punch-list.md`: - -- **Items present** — say what they are in one line and carry on. -- **None** — say so plainly and offer the ways to fix it: compose a shift now with - Hunt (answer **later**, not **now** — a shift started here defeats scheduling it), cut an - ordinary draft from `$NS/staging/drafting-table.md`, cut a `Status: proposed` import with - `"$NIGHTSHIFT_PLUGIN_ROOT/runtime/ns" import-issues --promote …`, or write an - item by hand. Then re-check. Never schedule an empty list without saying it will do nothing. - -A parked work order is not queued work. If one exists, say so: it must be moved into the punch list -before the scheduled time, because start will not promote it. - -## 3. Will the permissions hold? - -A scheduled run is headless and cannot answer a prompt. On Claude Code, if neither -`$TASK_ROOT/.claude/settings.local.json` nor `$TASK_ROOT/.claude/settings.json` grants -frictionless permissions, warn -once. On Codex the grant travels in the command itself: pass the owner's Codex launch command, as -the Codex host page (`$NIGHTSHIFT_PLUGIN_ROOT/skills/nightshift/references/hosts/codex.md`) -spells it, through `--agent`. The generator's preflight warns when a Codex command carries no -headless grant, and a Codex entry generated without one will stall on the first tool that asks. -Setup offers the fix. - -## 4. Confirm the queued work is unarmed - -Open `- [ ]` Items do not activate the clock-out gate by themselves. `.shift-armed` does, and -scheduling must not create it: the work stays queued until the scheduled Start preflight clears -stale markers and arms the shift. - -If `$NS/run/.shift-armed` already exists, stop here. This workspace has an active or stale shift, -not merely queued work. Report that state and point the owner to Status (`/nightshift:status` on -Claude Code, or ask Nightshift for status on Codex); do not tell them to create a STOP marker just -to schedule the list. Continue only after the existing shift has been ended or its stale state has -been diagnosed. - -## 5. Print the config - -Ask for the time if the owner has not given one — 24-hour `HH:MM`, local — then run the generator -and show its output as it comes: - -```bash -"$NIGHTSHIFT_PLUGIN_ROOT/runtime/ns" schedule --preflight -"$NIGHTSHIFT_PLUGIN_ROOT/runtime/ns" schedule --at <HH:MM> -# Codex projects add: --agent '<the Codex launch command from references/hosts/codex.md>' -# Linux user timers: --target systemd -``` - -`--preflight` / `-Preflight` checks the agent binary, permissions, resolved workspace, rules, queued work, -generated paths, and scheduler syntax for Claude Code and Codex. It installs nothing, writes -nothing under LaunchAgents, and does not enable, start, or register an entry. `--list` shows what -is already registered for this project; `--remove` prints the command that unregisters it. The -generator refuses to hand over a second entry where one exists — two scheduled starts on one punch -list is two agents on one shift. - -**Install nothing.** The owner runs the command it prints, or does not. - -## 6. Close - -Say where the run's output will land (`$NS/run/scheduled.log`), and -mention once that the same generator runs from a terminal with no session — -`ns schedule` is plain shell and spends no model tokens, which is -what makes it reachable on a day this command is not. On native Windows the equivalent is -; it likewise spends no model tokens and -registers nothing. The README carries the full offline note. +Read the [workflow](../nightshift/references/workflow.md). Explain that this package cannot wake +a session or register a background job. For a requested reminder or future run, use the host's +documented scheduling capability if it is available and the owner explicitly requested creation; +follow that capability's own permissions and report the actual result. Otherwise prepare a +prompt naming the persistent project, selected punch list, desired time and timezone, deadline, +and resume action for the owner to schedule. Do not invent scheduler commands or register launchd, +cron, or Task Scheduler jobs from this skill. If the owner wants Nightshift's local scheduler +configuration or recovery, explain the optional full local Codex installation. A future run +still needs a persistent workspace and available tools; a prepared prompt is not a scheduled job.
Full technical diff · 2 changed fields
changed /description
"Print the launchd, cron or Task Scheduler config that starts a shift at a fixed time; registers nothing."
"Prepare instructions for an owner-requested future Nightshift run without registering a scheduler or promising background recovery."
changed /skill_md_contents
"---\nname: schedule\ndescription: Print the launchd, cron or Task Scheduler config that starts a shift at a fixed time; registers nothing.\nlicense: MIT\n---\n\nGet the host-opened project ready to start on a clock, then hand the owner the config. Work through\nthese in order; each one is a check the owner would otherwise discover at 4am.\n\nResolve the installed plugin root to an absolute `$NIGHTSHIFT_PLUGIN_ROOT` — `${CLAUDE_PLUGIN_ROOT}`\non Claude Code, `$PLUGIN_ROOT` on Codex when set, otherwise the absolute path this skill was\nattached from (`skills/schedule/SKILL.md`). Run every command below through\n`\"$NIGHTSHIFT_PLUGIN_ROOT/runtime/ns\"` — native Windows: `& \"$NIGHTSHIFT_PLUGIN_ROOT\\runtime\\windows\\ns.ps1\"`\nin the PowerShell tool, same verbs — which resolves the host and the workspace; `ns help` lists the\nverbs, and `ns bind` prints the six resolved facts (`TASK_ROOT`, `NIGHTSHIFT_WORKSPACE`, `NS`,\n`NIGHTSHIFT_PLUGIN_ROOT`, `HOST`, `SOURCE`); `$NS` below is that `NS`. Never a bare relative path: the working\ndirectory persists between calls. Each `$NS/...` path below is where the current layout keeps that file;\n`ns path <key>` prints where this workspace keeps it, and `ns path --list` names every key.\n\n## 1. Is there a site at all?\n\nNo `$NS/` — stop and point at Setup (`/nightshift:setup` on Claude Code, or ask Nightshift\nto set up on Codex). Nothing below is meaningful without it.\n\nRead `$NS/run/work-mode`. Artifact mode is a persistent folder, not a Git repository; the scheduled\nagent still starts in that work target. A malformed mode or a scratch work target is a refuse —\nfix it with Setup before installing a job. In artifact mode, refuse to print or install a job when `$NS/receipts` exists but is not a usable directory.\nIf `$NS/run/work-mode` is missing and Setup would propose artifact, refuse to print or install a job; a scheduled start will refuse to arm.\nIf the work target cannot be resolved, refuse to print or install a job; a scheduled start will refuse to arm.\n\n## 2. Is there work queued?\n\nA scheduled start works the punch list it finds and **promotes nothing** — parked work orders and\ndrafting-table entries stay exactly where they are. So an empty `## Items` means the scheduled run\ndoes nothing at all, and this is the moment to fix that, not 4am.\n\nCount the open `- [ ]` in `$NS/punch-list.md`:\n\n- **Items present** — say what they are in one line and carry on.\n- **None** — say so plainly and offer the ways to fix it: compose a shift now with\n Hunt (answer **later**, not **now** — a shift started here defeats scheduling it), cut an\n ordinary draft from `$NS/staging/drafting-table.md`, cut a `Status: proposed` import with\n `\"$NIGHTSHIFT_PLUGIN_ROOT/runtime/ns\" import-issues --promote …`, or write an\n item by hand. Then re-check. Never schedule an empty list without saying it will do nothing.\n\nA parked work order is not queued work. If one exists, say so: it must be moved into the punch list\nbefore the scheduled time, because start will not promote it.\n\n## 3. Will the permissions hold?\n\nA scheduled run is headless and cannot answer a prompt. On Claude Code, if neither\n`$TASK_ROOT/.claude/settings.local.json` nor `$TASK_ROOT/.claude/settings.json` grants\nfrictionless permissions, warn\nonce. On Codex the grant travels in the command itself: pass the owner's Codex launch command, as\nthe Codex host page (`$NIGHTSHIFT_PLUGIN_ROOT/skills/nightshift/references/hosts/codex.md`)\nspells it, through `--agent`. The generator's preflight warns when a Codex command carries no\nheadless grant, and a Codex entry generated without one will stall on the first tool that asks.\nSetup offers the fix.\n\n## 4. Confirm the queued work is unarmed\n\nOpen `- [ ]` Items do not activate the clock-out gate by themselves. `.shift-armed` does, and\nscheduling must not create it: the work stays queued until the scheduled Start preflight clears\nstale markers and arms the shift.\n\nIf `$NS/run/.shift-armed` already exists, stop here. This workspace has an active or stale shift,\nnot merely queued work. Report that state and point the owner to Status (`/nightshift:status` on\nClaude Code, or ask Nightshift for status on Codex); do not tell them to create a STOP marker just\nto schedule the list. Continue only after the existing shift has been ended or its stale state has\nbeen diagnosed.\n\n## 5. Print the config\n\nAsk for the time if the owner has not given one — 24-hour `HH:MM`, local — then run the generator\nand show its output as it comes:\n\n```bash\n\"$NIGHTSHIFT_PLUGIN_ROOT/runtime/ns\" schedule --preflight\n\"$NIGHTSHIFT_PLUGIN_ROOT/runtime/ns\" schedule --at <HH:MM>\n# Codex projects add: --agent '<the Codex launch command from references/hosts/codex.md>'\n# Linux user timers: --target systemd\n```\n\n`--preflight` / `-Preflight` checks the agent binary, permissions, resolved workspace, rules, queued work,\ngenerated paths, and scheduler syntax for Claude Code and Codex. It installs nothing, writes\nnothing under LaunchAgents, and does not enable, start, or register an entry. `--list` shows what\nis already registered for this project; `--remove` prints the command that unregisters it. The\ngenerator refuses to hand over a second entry where one exists — two scheduled starts on one punch\nlist is two agents on one shift.\n\n**Install nothing.** The owner runs the command it prints, or does not.\n\n## 6. Close\n\nSay where the run's output will land (`$NS/run/scheduled.log`), and\nmention once that the same generator runs from a terminal with no session —\n`ns schedule` is plain shell and spends no model tokens, which is\nwhat makes it reachable on a day this command is not. On native Windows the equivalent is\n; it likewise spends no model tokens and\nregisters nothing. The README carries the full offline note.\n""---\nname: schedule\ndescription: \"Prepare instructions for an owner-requested future Nightshift run without registering a scheduler or promising background recovery.\"\n---\n\n# Schedule\n\nRead the [workflow](../nightshift/references/workflow.md). Explain that this package cannot wake\na session or register a background job. For a requested reminder or future run, use the host's\ndocumented scheduling capability if it is available and the owner explicitly requested creation;\nfollow that capability's own permissions and report the actual result. Otherwise prepare a\nprompt naming the persistent project, selected punch list, desired time and timezone, deadline,\nand resume action for the owner to schedule. Do not invent scheduler commands or register launchd,\ncron, or Task Scheduler jobs from this skill. If the owner wants Nightshift's local scheduler\nconfiguration or recovery, explain the optional full local Codex installation. A future run\nstill needs a persistent workspace and available tools; a prepared prompt is not a scheduled job.\n"
Full snapshot data
{
"description": "Prepare instructions for an owner-requested future Nightshift run without registering a scheduler or promising background recovery.",
"included_files": [],
"name": "schedule",
"skill_md_contents": "---\nname: schedule\ndescription: \"Prepare instructions for an owner-requested future Nightshift run without registering a scheduler or promising background recovery.\"\n---\n\n# Schedule\n\nRead the [workflow](../nightshift/references/workflow.md). Explain that this package cannot wake\na session or register a background job. For a requested reminder or future run, use the host's\ndocumented scheduling capability if it is available and the owner explicitly requested creation;\nfollow that capability's own permissions and report the actual result. Otherwise prepare a\nprompt naming the persistent project, selected punch list, desired time and timezone, deadline,\nand resume action for the owner to schedule. Do not invent scheduler commands or register launchd,\ncron, or Task Scheduler jobs from this skill. If the owner wants Nightshift's local scheduler\nconfiguration or recovery, explain the optional full local Codex installation. A future run\nstill needs a persistent workspace and available tools; a prepared prompt is not a scheduled job.\n"
}SHA-256 of public snapshot: edd9b72518b2b426dc75c822b5f63bcc377e8e0d997177469b665b8045013937