nextsteps
Situational assessment and roadmap sync after a work block. Default mode reads ONLY beads (`br`) and `~/roadmap` (lean: independent nextsteps markdown doc + beads update + roadmap activity + ~/roadmap learnings log). `--full` preserves the legacy all-source behavior (adds Claude auto-memory writes, mem0 sync, and GitHub Issue creation). Prefers editing existing roadmap docs over creating new files.
- License 许可
- MIT
- 最近更新
- 2026-11-14
- Stars
- ★ 6
- Forks
- 0
01 前言 Front Matter
- name
- nextsteps
- description
- Situational assessment and roadmap sync after a work block. Default mode reads ONLY beads (`br`) and `~/roadmap` (lean: independent nextsteps markdown doc + beads update + roadmap activity + ~/roadmap learnings log). `--full` preserves the legacy all-source behavior (adds Claude auto-memory writes, mem0 sync, and GitHub Issue creation). Prefers editing existing roadmap docs over creating new files.
03 SKILL.md 正文
/nextsteps — Situational Assessment & Roadmap Update
Situational assessment and roadmap sync after a work block.
Timeline, parallel lanes, and milestones (mandatory)
Read and apply ${CLAUDE_HOME:-$HOME/.claude}/skills/parallelize-to-ceiling/references/timeline-milestones.md
on every invocation. Always include a timeline, maximize useful independent
lanes within the measured resource ceiling, and report milestones every
20 minutes with an hourly rollup during active work. Preserve this command's
planning, handoff, and execution authorization boundaries.
Modes (read first — determines which phases run)
/nextsteps has two mutually exclusive modes. Pick one based on the
invocation; do not silently blend them.
| Mode | Invocation | Sources read | Side effects written |
|---|---|---|---|
| default (lean) | /nextsteps or /nextsteps [brief] |
beads (br list/br show) + ~/roadmap/ + roadmap/activity/YYYY-MM-DD.md |
nextsteps .md doc + br updates + roadmap/activity/YYYY-MM-DD.md (and README date link if new date) + ~/roadmap/learnings-YYYY-MM.md |
--full (legacy all-source) |
/nextsteps --full or /nextsteps --full [brief] |
everything in default + Claude auto-memory (~/.claude/projects/<key>/memory/) + mem0 |
everything in default + Claude auto-memory writes + MEMORY.md pointers + mem0_shared_client.py add + GitHub Issue creation |
Default mode skips these phases on purpose (they are owned by --full):
- Phase 4 — Write to Claude auto-memory (writes
~/.claude/projects/.../memory/*.mdandMEMORY.mdpointers). - Phase 5 — Save to mem0 (calls
~/.hermes/scripts/mem0_shared_client.py). - Phase 7b — Create or update GitHub Issues (calls
gh issue createfor each new bead).
<!-- USER REQUEST (verbatim, preserved per task brief): "Make /nextsteps only do beads and ~/roadmap and /nextsteps --full does everything" -->
If a user wants the side-effecting phases in the default run, they must invoke
/nextsteps --full. Rationale: the lean default keeps /nextsteps focused on
bead + roadmap state, which is what the user is asking for; the memory/issue
mirroring is opt-in and lives behind --full.
How to parse the flag
- Look at the literal text right after
/nextstepsor in$ARGUMENTS. - If the first non-whitespace token is exactly
--full, run in--fullmode and strip it from the brief. - Otherwise (no
--fullflag on the invocation), run in default mode and treat the rest as the user-provided brief. --fullis the only recognized flag. Any other token (--help,-h, etc.) is treated as part of the brief.
Report the chosen mode on the first line of the Phase 8 report, e.g.:
Mode: default (beads + ~/roadmap)
or
Mode: --full (beads + ~/roadmap + Claude memory + mem0 + GH Issues)
Fail-closed rule
Continue authorized work before handoff
Before writing a handoff or ending the run, reconcile the live request and current task state. A status question, acknowledgement, checkpoint, or context transition does not withdraw authorization for the same action, target, and outcome. Complete the next safe, reversible, authorized action—including available reviews and evidence checks—before reporting it as a next step. Record a future task as queued only when it is outside the current request or requires a real gate. Keep explicit planning-only requests, user stops, the autonomy deadline, and user-only authority boundaries intact. If blocked, name the exact action, current reason it cannot proceed, controlling owner, attempts and alternatives, and a concrete resumption trigger; do not label routine verification or review as waiting for the user.
Roadmap publication
For routine human-readable updates in ~/roadmap, follow that repository's
AGENTS.md direct-origin/main workflow, including scoped mechanical
validation and an expected-head check. Do not open a roadmap PR solely to
publish a /nextsteps artifact; existing roadmap PRs remain governed by that
repository's merge policy. This applies only to roadmap documentation: code
and skill changes keep their repository PR and merge gates, and Beads state
continues through the canonical br publisher.
A /nextsteps run is incomplete unless it leaves all of these artifacts
for its chosen mode:
Default mode (lean) — required artifacts
- Independent summary markdown doc (see Nextsteps document) — TOC, executive summary, then full self-contained detail; bead links throughout
- Beads updated/created via
br ~/roadmap/learnings-YYYY-MM.mdappendedroadmap/activity/YYYY-MM-DD.mdappended with session bullet (repo git root — create file if absent). If that date is brand-new, prepend one date link toroadmap/README.md's## Recent activity (by day)section.
If the session has no repo checkout, skip item 4 only and note that in the Phase 8 report.
--full mode — required artifacts
In addition to all default-mode artifacts above, a --full run must also
leave:
- Claude memory files written with
MEMORY.mdpointers - mem0 entry saved (or
⚠️ mem0 unavailable (skipped)recorded) - GitHub Issue creation attempted / recorded
If the session has no repo checkout, skip item 4 only and note that in the Phase 8 report.
Continuous completion contract
A normal /nextsteps invocation authorizes all relevant stages below. Complete all required stages in the same run before yielding a final response.
- In default mode, execute Stage 1 (Phases 1a/1b, 2, 3), skip Stage 2 side-effecting syncs (owned by
--full), and produce the Phase 8 report immediately. - In
--fullmode, execute Stage 1, then proceed continuously into Stage 2 (Claude auto-memory, mem0, GitHub Issues) before producing the Phase 8 report. - Do not pause for approval, ask whether to proceed, or stop at stage boundaries.
- Parallelize independent work when slots are available. If parallel capacity is unavailable, continue locally or sequentially; lack of a subagent slot is never a reason to stop.
- Interim user updates are non-blocking status messages, not approval checkpoints.
- If mem0, GitHub Issues, or another optional sink is unavailable in
--fullmode, record the exact attempted result, complete every other artifact, and report the unavailable sink in the final checklist. - Stop only for a genuine blocker that requires new authority or information and cannot be safely worked around. Routine external failures, disabled integrations, or partial tool availability are not stopping conditions.
- Phase 8 completes this command's assessment and persistence work; it does not terminate an ongoing caller workflow or cancel already-authorized work. Return to that workflow and continue its next safe action after reporting.
Doc discovery — prefer update over create
Before writing the independent summary or touching roadmap files:
- Search for existing nextsteps / session / sync docs (in order):
- Repo:
roadmap/nextsteps*.md,roadmap/NEXT-STEPS.md,roadmap/session-*.md,docs/nextsteps*.md(if present) - Home:
~/roadmap/nextsteps-latest.md,~/roadmap/nextsteps-*.md
- Repo:
- Prefer: append a new dated section to an existing rolling file (e.g.
nextsteps-latest.mdor the newestnextsteps-YYYY-MM-DD.mdin the same month), or add a subsection under an existing “Work queue” / “Next steps” heading. - Create new file only when no suitable file exists. Default new path:
~/roadmap/nextsteps-<YYYY-MM-DD>.md(orroadmap/nextsteps-<YYYY-MM-DD>.mdif the repo standard is to keep session docs in-repo — match sibling files if any). - Activity log: append the session bullet to
roadmap/activity/YYYY-MM-DD.md(create file with# Activity — YYYY-MM-DDheader if absent). If this is the first entry for that date, prepend a- [YYYY-MM-DD](activity/YYYY-MM-DD.md)line to the## Recent activity (by day)list inroadmap/README.md. Do not prepend to README for subsequent entries on the same date — only the per-day file changes. This keeps README conflict-free across concurrent PRs.
Nextsteps document (mandatory)
The independent .md file is the handoff artifact: a reader must be able to execute the queue without opening beads or chat.
Document order (fixed):
- Title line — e.g.
# Nextsteps — <topic or repo> — <YYYY-MM-DD> - Table of contents — Markdown list linking to every following
##section (Executive summary through Roadmap pointer). Use GitHub-style anchors (lowercase, hyphenated, dedupe if titles repeat). Update whenever headings change. - Executive summary — Short, skimmable block (bullets OK): what this block accomplished, what is blocked or at risk, top priorities / sequencing, beads and PRs that matter (ids with links). No deep procedural detail — that lives in the sections below.
- Full detail (all following
##sections) — Each section is self-contained (definitions, file paths, acceptance criteria, dependencies). Do not rely on “see chat” or unstated context. Order: Context → Bead index → Work queue → Timeline and parallel lanes → PR / merge state → Learnings pointer → Roadmap pointer.
Required ## sections after Executive summary (skip only if genuinely N/A — one line stating why):
| Section | Content |
|---|---|
| Context | 2–6 sentences: what block just ended, repo(s), branch/PR if relevant, scope boundaries |
| Bead index | Table: bd-… id, title, priority/status if known, link — every open bead touched or created this run. Prefer https://github.com/<owner>/<repo>/issues/<n> when the bead syncs to GitHub Issues; else br show <id> as fallback. Link the id in every row. |
| Work queue | Numbered tasks; each task self-contained: goal, acceptance criteria, files/areas, dependencies/blockers, suggested order; reference beads inline as linked [bd-xxx](url) where applicable |
| Timeline and parallel lanes | Estimated elapsed windows, lane owners and exclusive write scope, dependencies, outputs/proof, critical path, concurrency ceiling and limiting resource; 20-minute milestones and hourly rollups for future execution, without resuming stopped work |
| PR / merge state | Same session truth as Phase 1b (PR #n: OPEN | MERGED | CLOSED) for any PR whose current status or merge order is asserted or acted on; explicitly dated historical inventories remain snapshots. Include full PR URLs. |
| Learnings pointer | Path/link to the new ~/roadmap/learnings-YYYY-MM.md entry for this date; one-line summary of what was logged |
| Roadmap pointer | Confirm roadmap/activity/YYYY-MM-DD.md appended (and README date link added if new date) |
Link rules
- Beads: linked in Bead index, and again inline in Work queue items where a task maps to a bead.
- PRs/issues: full
https://github.com/owner/repo/pull/n(or/issues/n) when known. - Internal: link from TOC entries to each
##section anchor.
Example skeleton
# Nextsteps — <repo> — 2026-04-19
## Table of contents
- [Executive summary](#executive-summary)
- [Context](#context)
- [Bead index](#bead-index)
- [Work queue](#work-queue)
- [Timeline and parallel lanes](#timeline-and-parallel-lanes)
- [PR / merge state](#pr--merge-state)
- [Learnings pointer](#learnings-pointer)
- [Roadmap pointer](#roadmap-pointer)
## Executive summary
- Outcomes: …
- Risks / blockers: …
- Next: …
- Beads: [bd-abc123](https://github.com/org/repo/issues/NN) (short label)
## Context
…
## Bead index
| Bead | Title | Link |
|------|-------|------|
| bd-… | … | [bd-…](https://github.com/org/repo/issues/NN) |
## Work queue
1. … — tracks [bd-…](https://github.com/org/repo/issues/NN)
## Timeline and parallel lanes
| Elapsed estimate | Lane / owner | Scope / dependencies | Deliverable / proof |
|---|---|---|---|
| … | … | … | … |
- Critical path and measured or provisional concurrency ceiling: …
- Milestones: +20m, +40m, +60m (hourly rollup), then repeat while active.
- Execution start: <started now, or the exact unmet gate and resumption trigger>. Do not mark already-authorized work pending resumption; continue it in the current workflow.
## PR / merge state
- https://github.com/org/repo/pull/123 — OPEN
## Learnings pointer
- `~/roadmap/learnings-2026-04.md` — section `2026-04-19 — …`
## Roadmap pointer
- Appended `roadmap/activity/YYYY-MM-DD.md` — Recent activity (per-day file)
When invoked — Execution Workflow
Stage 1: Local Updates (Default & --full Modes)
Phase 1a — Memory Search Context
Reuse relevant context and source reads already gathered in this session. Delegate this phase alongside Phase 1b only when they contain independent unanswered questions worth separate lanes; otherwise perform the remaining bounded reads locally. Do not repeat completed discovery merely to satisfy a phase label. If a discovery lane fails because its transport or quota is unavailable, finish its bounded reads locally rather than retrying that unavailable transport. Refresh mutable tracker and PR state when reporting current facts. Refresh a PR when asserting or acting on its current status or merge order; preserve explicitly dated historical inventories as snapshots, including when they cite PRs.
For context still missing:
- Search memory files for key terms from the user-provided context after
/nextsteps - Check
~/roadmap/nextsteps-*.mdfor most recent session doc (target for append vs new file) - Check
~/roadmap/learnings-YYYY-MM.mdtail for existing entries - Report: existing bead IDs, open items from prior sessions, path of most recent nextsteps doc
Phase 1b — Gather context
Apply Phase 1a's reuse and delegation decision; share this inspection with other commands composed in the same request. Gather only the context still needed:
git log --oneline -10br list --status open --limit 0ls roadmap/(andls ~/roadmap/for home docs)- Run Doc discovery — note target file for the summary doc (existing vs new path)
- Use any user-provided line after
/nextstepsas extra context. - PR truth (same session): From open beads, roadmap merge stacks, and user notes, collect every distinct GitHub PR number you will reference. For each
n, resolve the repo (default:gh repo view --json nameWithOwner -q .nameWithOwnerfrom the git root; if the work spans another repo, pass that owner/name explicitly) and run:
Map JSON to a human line for the report and the Nextsteps document:gh pr view <n> --repo <owner/repo> --json state,mergedAt,closedAt,headRefNamePR #n: OPENifstateisOPEN;PR #n: MERGEDifmergedAtis non-null; elsePR #n: CLOSED(closed without merge). Do not recommend “land PR n” without this check in the same/nextstepsrun.
Phase 2 — Assess & Update Local Assets
- Match recent commits to open beads; close or update status.
- Note gaps → determine new beads to create.
- Create or update beads using
br:br create "<title>" --type task --priority 2 - Append session bullet to
roadmap/activity/YYYY-MM-DD.md(create with header if new date). Only touchroadmap/README.mdwhen the date file is brand-new (prepend one date link to## Recent activity (by day)). - Identify learnings from the session worth persisting, and append them to
~/roadmap/learnings-<YYYY-MM>.md(create if absent) using this format:## <YYYY-MM-DD> — <title> - **Type**: feedback|project|reference - **Classification**: 🚨|⚠️|✅|❌ - **Summary**: <one-liner> - **Bead**: <bd-id or none> - **Files**: <paths changed if any> - **Nextsteps doc**: <path to independent summary md>
Phase 3 — Write/Update Nextsteps Document & Show to User
- Apply Doc discovery.
- Write or append to the Nextsteps document: table of contents, executive summary, then full detail sections per Nextsteps document (mandatory).
- Record the clean table of created/updated beads, learnings, roadmap activity changes, and the Nextsteps document path.
- In default mode, skip Stage 2 and proceed directly to Phase 8 report.
- In
--fullmode, continue directly to Stage 2. Do not yield a final response or request confirmation here.
Stage 2: Memory & Tool Sync (--full only, Parallel When Available)
Skipped by default mode. Run only when the invocation includes --full.
Run the remaining tasks immediately in the same invocation. Use parallel subagents when available; otherwise perform the tasks locally or sequentially and finish the stage.
Phase 4 — Write to Claude auto-memory (--full only)
Create a subagent (TypeName=self or a custom subagent) to execute the memory write for each learning/finding:
- Determine type:
feedback(rules, anti-patterns) |project(decisions, state) |reference(pointers) - Slug: lowercase, underscored, max 40 chars
- Derive memory dir from git root:
git_root=$(git rev-parse --show-toplevel) project_key="${git_root//\//-}" memory_dir="$HOME/.claude/projects/${project_key}/memory" - Write file
${memory_type}_${date}_${slug}.mdwith frontmatter:--- name: <title> description: <one-liner> type: feedback|project|reference bead: <bd-id or none> --- <body> **Why:** <reason> **How to apply:** <when/where this kicks in> - Append pointer to
MEMORY.md(create file if missing):- [Title](filename) — one-liner - Report back:
✅ Claude auto-memory: {filename}
Phase 5 — Save to mem0 (--full only)
Create a subagent (or run concurrently) to save to mem0:
- Check: skip if
~/.hermes/scripts/mem0_shared_client.pyis absent. - Build text:
"{title}: {one_liner}. {body_1_sentence}" - Run:
python3 ~/.hermes/scripts/mem0_shared_client.py add "<text>" \ --user-id $USER \ --no-infer - Report back:
✅ mem0 savedor⚠️ mem0 unavailable (skipped)
Phase 7b — Create or update GitHub Issues (--full only)
For each bead created in Stage 1, attempt to create a linked GitHub Issue. Resolve the repository from the current checkout; this publication is optional, so a lookup or creation failure blocks only the issue write. Record the exact failure and continue the other Phase 7/8 work. Never choose a different repository as a fallback.
Run all issue creates in parallel only after the current repository has been resolved:
if ! REPO=$(gh repo view --json nameWithOwner -q .nameWithOwner); then
echo "⚠️ GitHub Issue publication unavailable: repository lookup failed; preserve the exact gh error and continue other artifacts. No issue was created."
elif [[ -z "$REPO" ]]; then
echo "⚠️ GitHub Issue publication unavailable: repository lookup returned an empty name. Continue other artifacts. No issue was created."
else
if ! gh issue create --repo "$REPO" \
--title "[resilience] <bead title>" \
--body "## Summary
<one-paragraph description>
## Acceptance criteria
- [ ] <criterion 1>
- [ ] <criterion 2>
**Bead:** <bd-id>" \
--label "task" 2>&1; then
echo "⚠️ GitHub Issue publication unavailable: preserve the exact gh error; do not retry in another repository. Continue other artifacts."
fi
fi
- If
gh issue createreturns "repository has disabled issues", log⚠️ GH Issues disabled on <repo> — bead onlyand continue. - If repository lookup or issue creation fails for another reason, retain its exact error and leave that optional issue unpublished; never retry in a guessed repository.
- If it succeeds, capture the issue URL and add it to the bead index in the Nextsteps document.
- Report back:
✅ GH Issue #N created,⚠️ GH Issues disabled, or⚠️ GitHub Issue publication unavailable: <exact reason>.
Phase 8 — Report completion
First line: the chosen mode (see Modes).
Then summarize the results and print the final artifact checklist for the chosen mode:
Default mode checklist:
[x]Nextsteps independent.md(TOC + executive summary + full detail; bead index + linked beads in queue)[x]Beads (br) written[x]~/roadmap/learnings-YYYY-MM.mdupdated (includes nextsteps doc path)[x]roadmap/activity/YYYY-MM-DD.md(androadmap/README.mdif new date) updated[ ](intentionally blank — Claude memory + mem0 + GH Issues are owned by--full)
--full mode checklist:
[x]Nextsteps independent.md(TOC + executive summary + full detail; bead index + linked beads in queue)[x]Beads (br) written[x]Claude memory +MEMORY.mdpointers written[x]~/roadmap/learnings-YYYY-MM.mdupdated (includes nextsteps doc path)[x]roadmap/activity/YYYY-MM-DD.md(androadmap/README.mdif new date) updated[x]mem0 entry saved (or⚠️ mem0 unavailable (skipped))[x]GH Issues created (or⚠️ GH Issues disabled — bead only)
Merge-order sanity: If any recommended action was “merge A before B” (or “land A then rebase B”), re-assert A using the Phase 1 gh pr view results from this run. If A is MERGED, do not tell the reader to land A; say instead to rebase B on main (or the appropriate default branch). If A is OPEN, keep the ordering advice. If A is CLOSED without merge, drop merge-order advice and flag that the stack needs re-triage.
04 同仓库更多 Skills
instinct
Use when the user invokes /instinct or /in, or asks to "message Instinct", "ask Instinct", "tell Instinct", "check Instinct", or read replies from the configured peer assistant. iMessage first, WhatsApp Web as fallback.
hr
Compatibility alias for history-resume; produce the same fresh-state, provenance-aware resume briefing.
history-resume
Resume briefing for the current repository branch or worktree using fresh state and admitted history sources.
grok
Alias for the canonical grokbot browser conversation workflow; /grok talks to the Grok bot the same way /dot talks to Dot.
codexa-bench
Compare `codexa` and normal `codex` on a fair split of comparable work by default; use `--strict` for duplicate runs of the exact same task.
frontend-design
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.