initlisted
Install: claude install-skill jasonm4130/claude-skills
# Scaffold Nightshift into this repo
The loop is committed in the target repo, not in this plugin: it runs
`claude -p --setting-sources project`, where installed plugins never load, so
the hooks only bite when they live under the repo's own `.claude/`. This skill
copies them in, proves the copy, and leaves the switch off. Announce: "Using
nightshift:init to scaffold the overnight landing loop."
Scripts live under this skill's plugin directory: resolve `${CLAUDE_PLUGIN_ROOT}`
(or this file's `../../scripts/`) and call them with `node`.
## 1. Look before writing
- `git remote get-url origin` is a GitHub remote, `gh auth status` succeeds.
- Detect the stack the way `init.mjs --stack auto` does (Cargo.toml, package.json,
pyproject.toml, go.mod, else generic) and say which verifier skeleton it gets.
- An existing `loop/`, `scripts/check`, or `.claude/hooks/` means this is not a
first init: run `node <plugin>/scripts/init.mjs --check` and stop with its
report instead.
- Is there a plan to land? If the user names one, pass `--plan <path>`;
otherwise init scaffolds `docs/plans/<today>-nightshift-smoke.md` with one
harmless task so the first night has something to do.
## 2. Scaffold
```
node <plugin>/scripts/init.mjs --stack <stack> [--plan <path>] [--base <branch>]
```
Say what it wrote (it prints the list): `loop/*`, `.claude/hooks/*`,
`scripts/check` (never overwritten if present), `docs/developing/landing.md`
or `docs/nightshift.md`, the smoke plan, and the merged