Skip to content

v0.3.0: slash commands in correct folder + orchestration skills + review-delta ADR#2

Merged
nachiket-p merged 6 commits intomainfrom
release/v0.3.0
Apr 23, 2026
Merged

v0.3.0: slash commands in correct folder + orchestration skills + review-delta ADR#2
nachiket-p merged 6 commits intomainfrom
release/v0.3.0

Conversation

@nachiket-p
Copy link
Copy Markdown
Member

Summary

Ships six commits that add DocOps orchestration skills, fix Claude Code slash-command discoverability, and promote two accepted ADRs.

  • Slash command folder fix — Claude Code reads /docops:* from .claude/commands/docops/, not .claude/skills/docops/. Retargets init + upgrade; legacy cleanup removes old-location files on upgrade. (380ee51)
  • Orchestration skills — /docops:progress, /docops:do, /docops:plan, /docops:close (TP-023 phase 2).
  • Read-command wrappers — /docops:next, /docops:get, /docops:list, /docops:graph, /docops:search (TP-023 phase 1).
  • Review-delta planning — ADR-0026 draft + TP-029: proposes reviewed_at ADR frontmatter and docops review command to catch ADR/code drift once implementation flips to done.
  • ADR promotions — ADR-0023 (update-check) and ADR-0024 (CLAUDE.md alongside AGENTS.md) moved from draft → accepted; implementations shipped in v0.2.0.
  • Template trim — cuts ~60 lines of verbosity from CLAUDE.md/AGENTS.md, surfaces --body/--body-file on docops new to avoid the stub-then-rewrite round-trip.

Dogfooded via docops upgrade --yes on this repo — all 17 /docops:* slash commands now register with Claude Code; Cursor layout unchanged.

Test plan

  • go test ./... green (59 docs validate clean, new migration test TestRun_MigratesLegacyClaudeSkillsFolder passes)
  • docops upgrade --dry-run against this repo produces expected migration plan (17 removes from legacy folder, 17 adds to new folder + 17 renames visible in git log)
  • docops refresh clean: 0 errors, 0 warnings
  • After merge: make release VERSION=0.3.0 to cut tag + trigger goreleaser (Homebrew tap + Scoop bucket)

🤖 Generated with Claude Code

nachiket and others added 6 commits April 23, 2026 22:54
…lags

The shipped CLAUDE.md/AGENTS.md templates grew a verbose preamble and a
stale "Not yet built" section listing commands (list/get/graph/next/search)
that have since been implemented. More importantly, the command list
showed only the minimal `docops new ctx "title"` form, so agents would
create a stub file and then try to Write() content into it — failing the
read-before-edit guardrail many runtimes enforce. Now the template shows
`--body -|TEXT` / `--body-file PATH` inline and calls out "populate at
creation" explicitly to avoid the stub-then-rewrite round-trip. The
"Notes for humans" footer story is replaced with a one-line blockquote.

The docops block stays byte-identical between the two templates
(TestAgentsClaudeBlocksInSync passes).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Both were left as draft but their implementations shipped in v0.2.0:
- ADR-0023 update-check — TP-021 done
- ADR-0024 CLAUDE.md alongside AGENTS.md — TP-022 done

Regenerated STATE.md and .index.json via docops refresh.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a cheap review-delta loop to DocOps so ADRs whose citing tasks
have all shipped don't silently drift from the code that claims to
implement them:

- ADR-0026 (draft) proposes an optional `reviewed_at` ADR frontmatter
  field and a new `docops review` command. The command lists ADRs
  where implementation=done but reviewed_at is missing or predates
  the newest commit touching files referenced by citing tasks; with
  an ID it prints the ADR body + relevant commits so the agent can
  assess drift; `--mark` stamps today's date. STATE.md surfaces the
  stale-review count.
- TP-029 tracks shipping that CLI + schema work.
- TP-023 scope expanded with Phase 2: ship gstack-style orchestration
  skills (/docops:progress, /docops:do, /docops:plan, /docops:close,
  /docops:review). Priority bumped p2 → p1 since agents running against
  DocOps today need these to drive the workflow, not just the thin
  read-command wrappers Phase 1 covers.

Rationale on why `reviewed_at` is source rather than computed: ADR-0010
already derives `implementation` state from citing tasks, but review
itself is human+agent judgment — reading shipped code against the
decision — so the sign-off can't be inferred from filesystem state.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The read-command skills went missing when the bundle was trimmed before
v0.2.0 — the CLI exposed five commands without matching skills, so an
agent that learned "/docops:next" under v0.1.x silently lost the
affordance after upgrade. Restores all five with frontmatter and bodies
matching the existing skill tone: terse, point at the CLI, no embedded
domain knowledge that belongs in --help.

Flag coverage in the lint test (flagAllowlist) mirrors the actual
cmd_*.go flag sets. Two upgrader fixtures that used next.md as the
"stale skill removed upstream" case are updated to old-command.md so
they survive next.md re-entering the bundle.

Phase 2 (orchestration skills) still to come; TP-023 stays active.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds four gstack/gsd-style orchestration skills — thin shells that
sequence multiple docops commands and prompt the user through a
workflow, modelled on the pattern /gsd-progress, /gsd-do, /gsd-ship
use successfully:

- /docops:progress — state + audit + next → single situational
  briefing.
- /docops:do — NL intent router; maps freeform requests to the right
  /docops:* skill, never does the work itself.
- /docops:plan — converts a CTX into an ADR plus citing tasks via
  `docops new ... --body -` heredocs (no stub-then-rewrite round-trip).
  Human-confirmed before every write.
- /docops:close — finish-task loop: verify acceptance → flip status
  to done → refresh → stage commit → propose message. User approves
  before anything lands.

/docops:review is deliberately deferred to TP-029 (the `docops review`
command it would wrap doesn't exist yet) per TP-023's phase 2 scope.

Closing TP-023 — phase 1 (read-command wrappers) shipped in afcd855;
phase 2 is the commit above. The blocked /docops:review skill will
land alongside its CLI under TP-029.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Claude Code reads slash commands from .claude/commands/<ns>/<cmd>.md and
skills from .claude/skills/<name>/SKILL.md (one directory per skill,
different frontmatter contract). DocOps was writing flat files under
.claude/skills/docops/ which Claude Code registered as neither — the
/docops:* namespace was effectively invisible in Claude Code sessions
(Cursor worked because .cursor/commands/docops/ was the right shape).

Retargets init and upgrade to write into .claude/commands/docops/ to
match the Cursor layout and the /docops:* invocation pattern the skill
bodies already assumed.

Upgrade also removes every file sitting in the old .claude/skills/docops/
location so v0.2.x users don't end up with the same slash command
mounted from two folders. Legacy cleanup is best-effort — os.RemoveAll
semantics on missing paths, no failure when the folder never existed.

Test coverage for the migration added as
TestRun_MigratesLegacyClaudeSkillsFolder.

Dogfooded via `docops upgrade --yes` on this repo: Claude Code's
skills list now shows docops:refresh, docops:do, docops:search,
docops:new-adr, docops:get, docops:next, docops:state, docops:progress,
docops:init, docops:list, docops:close, docops:audit, docops:new-ctx,
docops:new-task, docops:plan, docops:upgrade, docops:graph — all 17.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@nachiket-p nachiket-p merged commit 708ba9e into main Apr 23, 2026
7 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant