jasonm4130
- 13 skills
- 0 followers
- 7 hours ago last updated
- ▌ Adr · jasonm4130 bundleUse when the user knows what they want built and says "/adr", "write an ADR for X", "decide and build X", or "ADR-driven". Turns an intent into a grounded, cited, build-ready ADR at docs/adr/YYYY-MM-DD-<slug>.md — load-bearing decisions surfaced to the human — then hands off to `nightshift:plan`'s landing step (the plan is opened as a PR and Nightshift lands it overnight). For exploratory "not sure what I want yet" work use brainstorming first. Do NOT use for domain vocabulary (use domain-modeling) or for prose mechanics on an existing document (use writing-artifacts).
- ▌ Handoff · jasonm4130Write a structured handoff / resume document for this session so the next session can pick up exactly where this one left off. Use when the user asks to write a handoff, "prep for resume", "session handoff", or when context is high and you want to preserve state before /compact or /clear. Triggers: "/handoff", "handoff", "write a handoff", "prep for resume", "session handoff", "write a resume doc", "handoff before clear". Do NOT use for durable documentation — a handoff is disposable session state, not an ADR, README or design doc.
- ▌ Init · jasonm4130Use when the user says "/nightshift:init", "set up nightshift here", "add the overnight landing loop to this repo", or asks how to run plans unattended in a repo that has no `loop/` directory. Scaffolds the loop, the two PreToolUse guards, a stack-specific verifier and the landing doc into the current repo, merges `.claude/settings.json`, proves it with a dry run, commits the scaffold on a branch, runs preflight and prints the first-night recipe. Do NOT use to run a night (the loop runs itself from launchd or the terminal), to triage one (use morning), or to write a plan (use plan). Do NOT re-run to update an existing scaffold; use `init.mjs --check` and `--update`. This is for the old landing loop; for Nightwatch use nightwatch-init.
- ▌ Plan · jasonm4130Use when the user has an idea, feature, or fix that is more than a one-sitting edit and says "plan this", "write a plan for X", "/nightshift:plan", or "what would it take to build X". Sizes the work (trivial → no artifact; medium → a lean plan; large → a short spec first), asks one question at a time until the design is settled, then writes a plan the overnight landing loop can land unattended — self-contained `# Task N` sections, empty Open Questions — proves each task extracts with `loop/task-brief`, runs one Codex pass, and opens the plan as its own pull request. Do NOT use to execute a plan (the loop does that at night, or a human by day), for ad-hoc edits, or when the design is already settled and written down (go straight to the task).
- ▌ Spec · jasonm4130Use when the user has an outcome for Nightwatch to run unattended overnight and says "write a nightwatch spec for X", "/nightwatch:spec", or "spec this out for the launcher". Reads the code the outcome touches, settles Outcome / Acceptance / Non-goals / Context with the user one question at a time, declares Depends, Units and Writes headers when they apply, writes the spec file, and refuses to finish until lint-spec.mjs prints SPEC OK. Do NOT use to execute a spec (run.sh does that at night) or for a one-sitting edit that does not need an unattended run. Do NOT use for the old Task-N plan format — that is nightshift:plan.
- ▌ Watch · jasonm4130Use when a Nightwatch spec queue is about to run, or is already running, and someone needs to fire it, watch it, and steer it — "launch nightwatch", "watch the run", "/nightwatch:watch", "pause it", "skip that spec". Runs preflight, launches run.sh, arms the journal and workflow-journal monitors, knows what is safe to change mid-run, and reads the interventions (control file, pause file, kill switch) plus when to hand off to morning.mjs. Do NOT use to write a spec (nightwatch:spec) or to implement the outcome's code yourself — the launcher's `claude -p` units do that, never this session.
- ▌ Morning · jasonm4130Use when the user says "/nightshift:morning", "what happened overnight", "how did the night go", "why did the loop stop", or opens a session in a repo with a `loop/` directory after a scheduled run. Reads the journal since the last start line and every open `land` / `land:blocked` pull request, says per stop what happened, what it costs to ignore, and the fix, then offers the fixes. Do NOT use to write plans (use plan), to scaffold the loop (use init), or to merge pull requests by hand — merges go through `./loop/merge-pr.sh` or the user.
- ▌ Retro · jasonm4130Run an interactive session retrospective. Reads the per-session event log (maintained by the PostToolUse hook) and uses git diff/status/log as memory primer, then walks through specific moments via adaptive questions driven by what changed, and writes structured native memory entries. Suggest this when the end-of-day hook has injected a /retro suggestion, or when the user explicitly asks for one. Triggers: "retro", "session summary", "what did we learn", "lessons learned", "session retrospective". Do NOT use to record a decision (use adr) — a retro captures how the work went, not what was decided.
- ▌ Docs Consolidate · jasonm4130Audit a repo's documentation for internal contradictions, stale claims, orphans and bloat after it has accumulated commits, then report findings for the user to disposition. Use when the consolidation nudge fires, or when the user asks to consolidate, audit, or spring-clean the docs. Triggers: "/docs-consolidate", "consolidate the docs", "docs audit", "have the docs drifted", "check the docs against each other". Do NOT use for updating one doc alongside a code change — that is the commit gate's job, and a single doc edit needs no audit.
- ▌ Nightwatch Init · jasonm4130Use when the user says "initialize nightwatch", "init nightwatch", "set up nightwatch here", "set up nightwatch in this repo", or "/nightwatch-init". Runs init.mjs's preflight and status table for the current repo, proposes check commands from the repo's CI when none exists, offers to set the kill switch, then runs init end to end and proves it with a dry run. Do NOT use to write a spec (nightwatch:spec), to run or watch a night (nightwatch:watch), or to scaffold the old task-per-PR loop (nightshift:init).
- ▌ Codex Plan Review · jasonm4130 bundleCross-provider adversarial review of a finalized plan, spec, design doc, ADR, or code diff using OpenAI Codex (GPT-5.6 Terra). AUTO-TRIGGER at plan gates — invoke immediately after any of: (1) a plan written by `nightshift:plan` is finalized, (2) an ADR draft is completed. AUTO-TRIGGER for code: after implementing a Codex-reviewed plan, run diff mode on the branch range before opening the PR — a reviewed plan is NOT a reviewed diff. Also invoke on request — "codex review this plan", "codex review this diff", "get a second opinion on this design", "terra review". Do NOT re-run on an artifact already reviewed without an explicit user ask; each chain burns paid quota.
- ▌ Domain Modeling · jasonm4130 bundleUse when pinning down domain terminology, building a ubiquitous language or project glossary, disambiguating overloaded or vague terms, or maintaining a CONTEXT.md — or when another skill needs to sharpen the domain model. Do NOT use for recording architectural decisions (use adr) or for writing implementation specs.
- ▌ Writing Artifacts · jasonm4130Use when writing or revising a durable written artifact — README, ADR, design doc, PR description, release notes, runbook, error message, user-facing docs. Gives a positive writing system (reader model, sentence positions, document jobs), not a ban-list. Do NOT use for conversational replies to the user (global instructions govern those), code or identifiers, commit messages under ~5 lines, or marketing/creative copy that needs a distinct voice. For an ADR specifically, the adr skill owns the format and workflow; this skill owns the prose.