feat: add incident-tracker, sdlc-utils plugins; enhance scm-utils review skills#383
feat: add incident-tracker, sdlc-utils plugins; enhance scm-utils review skills#383jack-nsheaps[bot] wants to merge 35 commits intomainfrom
Conversation
- Structured incident documentation with YAML front matter - Automatic rule derivation with footnote references - /incident command workflow - Template for consistent incident format - Links incidents to rules in AGENTS.md Consolidates incident tracking mechanism from OpenClaw workspace.
The plugin.json in .claude-plugin/ needs to match Claude Code format with name, version, description, author, etc.
…ME, resolve DRY violation - Delete top-level plugin.json (repo convention: only .claude-plugin/plugin.json) - Remove fictional config documentation from README - Delete templates/incident.md (DRY: command already has inline template) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…sed skills Restructure the plugin from a single product-focused spec-writing skill into six software engineering SDLC phase skills: plan, implement, review, test, deploy, and maintain. Remove product-development specifics (PRDs, user stories, market research) and focus on software engineering lifecycle. Also adds deprecation notices to overlapping scm-utils skills (iterate-until-good, code-review, making-great-prs, fix-pr) pointing to sdlc-utils:review.
Move iterate-until-good from scm-utils to sdlc-utils (iteration loop belongs in SDLC, not SCM). Create 9 granular review skills in scm-utils (review-code, review-diff, review-commits, review-commit-messages, review-pr-contents, fix-review-findings, validate-review, respond-to-review, post-review) plus a pr-review-workflow meta skill that orchestrates them. Update scm-utils deprecation notices and add Henry QA role note to code-review skill.
…ecation notice - Rename skill from 'making-great-prs' to 'request-a-review' to align with granular skill pattern - Reflects role as counterpart to review-code, respond-to-review, and other review-receiving skills - Remove DEPRECATED notice — skill is NOT deprecated, it belongs in scm-utils plugin - Update description to emphasize PR creation, formatting, lifecycle, and review request workflow
…ganization - Lifecycle status now tracked via 'status' field in frontmatter (draft, reviewed, in-progress, live, deprecated, archive) instead of moving files between directories - Add guidance for organizing specs into feature-specific folders for larger projects - Update file organization section to reflect single docs/specs/ directory with optional grouping - Update spec template to include frontmatter with status field - Cleaner spec management without directory churn
…ai-mktpl into incident-tracker-plugin
Adds name, description, and argument-hint front matter to match repo convention required by all other command files.
- Remove hardcoded user-specific path in pr-workflow/SKILL.md (blocking) - Replace "STRIKE ONE" jargon with generic language - Replace "Henry's QA role" internal reference with technical description - Gate self-contribution instruction behind user decision - Make common-sense plugin reference conditional - Add cross-references between plan and spec-writing skills
…ai-mktpl into incident-tracker-plugin
- Fix stale skill references in pr-workflow: making-great-prs -> request-a-review, pr-feedback -> respond-to-review - Reword self-referential PR contribution encouragement in iterate-until-good to suggest user-driven improvements instead of autonomous agent PRs
Plugin Version StatusVersions are auto-bumped in PRs. Manual bumps to higher versions are preserved.
|
- Revert marketplace.json to let CD workflow regenerate on merge - Differentiate plan vs spec-writing trigger phrases to reduce agent ambiguity: plan owns task breakdown/implementation planning, spec-writing owns formal specification lifecycle management - Add cross-reference guidance in both skill descriptions - Update README to document all skills including spec-writing and iterate-until-good, with differentiated trigger phrases
25595b0 to
d1db28f
Compare
There was a problem hiding this comment.
❌ Some changes need to be made — orphaned spec template and wrong deprecation target
❌ Orphaned plan/references/spec-template.md duplicates the canonical template in spec-writing/references/ with no reader (thread)
❌ fix-pr.md deprecation points at sdlc-utils:review, which doesn't own PR-description fixing — correct target is scm-utils:request-a-review (thread)
⚠️ PR description overstates scope — the scm-utils review skills and the sdlc-utils rename already landed on main via #377; actual diff is just incident-tracker, an orphan template, a deprecation tweak, and version bumps
❔ incident-tracker hard-codes AGENTS.md as the rules target with no fallback/override
✅ incident-tracker plugin structure (plugin.json, README, command frontmatter) is correct
✅ marketplace.json revert + CD-regenerated entries align with repo convention
✅ plan / spec-writing trigger phrases differentiated with cross-references
🖱️ Click to expand for full details
plan/references/spec-template.md duplicates the canonical template in spec-writing/references/ with no reader (thread)❌
fix-pr.md deprecation points at sdlc-utils:review, which doesn't own PR-description fixing — correct target is scm-utils:request-a-review (thread)❔
incident-tracker hard-codes AGENTS.md as the rules target with no fallback/override✅
incident-tracker plugin structure (plugin.json, README, command frontmatter) is correct✅
marketplace.json revert + CD-regenerated entries align with repo convention✅
plan / spec-writing trigger phrases differentiated with cross-referencesScope check
The actual diff against origin/main is 8 files / ~450 additions:
plugins/incident-tracker/**(new plugin)plugins/sdlc-utils/skills/plan/references/spec-template.md(new, orphaned)plugins/scm-utils/commands/fix-pr.md(deprecation notice tweak)plugins/{scm-utils,sdlc-utils}/.claude-plugin/plugin.json(0.2.0 → 0.2.1).claude-plugin/marketplace.json(CD-regenerated)
The PR body describes scm-utils review-skill additions and the sdlc-utils rename as if they're part of this PR. They aren't — those landed via PR #377 and PR #301 earlier in the branch's history; only the trailing delta is being merged here. Worth updating the description so reviewers (and future git archaeologists) aren't chasing content that's already on main.
Orphaned spec template (blocking)
The new plugins/sdlc-utils/skills/plan/references/spec-template.md (201 lines) is not referenced anywhere. Both plan/SKILL.md (lines 59, 168) and spec-writing/SKILL.md (lines 256, 465) point at plugins/sdlc-utils/skills/spec-writing/references/spec-template.md. This file is dead weight and a DRY trap — future edits to "the spec template" will land on whichever copy the author happens to open.
The previous reply on the earlier thread claimed only one template existed on disk; that's not the case on the current HEAD. Details and file diff in the inline comment.
fix-pr.md deprecation target (blocking)
The deprecation notice redirects to sdlc-utils:review, but the SDLC-phase review skill covers code review, not PR description fixing. Based on the skill set introduced in #377, the right target for "fix my PR description" is scm-utils:request-a-review (or scm-utils:pr-workflow for the broader lifecycle). Suggested replacement in the inline comment.
incident-tracker (non-blocking)
Plugin structure is correct: frontmatter on plugin.json, YAML on the command, README, no hardcoded user paths. Two things that won't block a 1.0.0 release but are worth a follow-up:
- The workflow writes into
AGENTS.mdunconditionally. Projects that useCLAUDE.mdor another canonical rules file will get an orphanedAGENTS.md. This is a good candidate for the auto-config pattern (.claude/rules/auto-config-pattern.md) — let the plugin discover the repo's rules file or accept a setting. - The README says "No configuration required" and lists fixed paths; if/when config lands, both docs will need to move off that claim.
Why the scores
- Quality 80% — two actionable defects (orphaned file, incorrect deprecation target). Everything else lines up with repo conventions.
- Simplicity 78% — the orphan template and the outdated PR body both make the change harder to understand than it needs to be. Deleting the orphan and trimming the PR body to match the actual diff would push this back up.
- Confidence 90% — verified on the current HEAD (
b41841b): file listings, grep for references, commit history, and the CD auto-bump chain all cross-checked. - Security N/A — docs/config-only change, no attack surface.
Thread state
- Thread on
.claude-plugin/marketplace.json— resolved; CD-regenerated diff is expected. - Thread on
plan/SKILL.md(plan vs spec-writing overlap) — resolved; cross-references + differentiated triggers are adequate. - Thread on
spec-writing/.../spec-template.md— left open with a reply; see the new inline comment onplan/references/spec-template.mdfor the concrete action.
Recommended follow-ups (non-blocking):
- Add auto-config / settings support to
incident-trackerso the derived-rules target file can be overridden per project (defaultAGENTS.md, fall back toCLAUDE.mdor a configured path). - Once
fix-pr.mddeprecation target is fixed, consider a deletion PR after one release cycle rather than shipping a perpetual deprecated command. - Trim the PR description to reflect the actual diff so the merge commit message is accurate.
Footnotes
-
Workflow Run: nsheaps/ai-mktpl actions/runs/24538352562 ↩
-
Auto-config pattern reference:
.claude/rules/auto-config-pattern.mdin this repo ↩
There was a problem hiding this comment.
❌ Orphaned spec template — DRY violation
This new 201-line file is not referenced by any skill. Both plan/SKILL.md (lines 59 and 168) and spec-writing/SKILL.md point at plugins/sdlc-utils/skills/spec-writing/references/spec-template.md (the 384-line canonical template). Nothing reads this file.
Verified:
$ grep -rn "plan/references/spec-template\|references/spec-template" plugins/sdlc-utils/skills/
plugins/sdlc-utils/skills/plan/SKILL.md:59:`../spec-writing/references/spec-template.md`. Fill in only what is known with confidence.
plugins/sdlc-utils/skills/plan/SKILL.md:168:- **`../spec-writing/references/spec-template.md`** - Complete spec template
plugins/sdlc-utils/skills/spec-writing/SKILL.md:256:See `references/spec-template.md` for a complete template with guidance on
plugins/sdlc-utils/skills/spec-writing/SKILL.md:465:- **`references/spec-template.md`** — Complete spec template with all sections
This file appears to be a leftover from the product-development-and-sdlc → sdlc-utils rename (commit e56ef44) that didn't get cleaned up when the 384-line template landed via PR #377. Since plan/SKILL.md already points to ../spec-writing/references/spec-template.md, the simplest fix is to delete the orphan. If the intent is to have a dedicated plan template, the plan/SKILL.md cross-references need to be updated to point at the local file (and the resulting two-template situation would then still need deliberate justification — but right now there is no reader).
Follow-up on the earlier thread: #discussion_r3042413475.
Suggested action: delete plugins/sdlc-utils/skills/plan/references/spec-template.md (and the empty references/ dir).
| allowed-tools: Bash, Read, Grep, Glob | ||
| --- | ||
|
|
||
| > **DEPRECATED:** This skill is moving to the sdlc-utils plugin. Use the `/sdlc-utils:review` skill instead. |
There was a problem hiding this comment.
❔ Deprecation points to a skill that doesn't exist
Both the frontmatter description and the body block say to use sdlc-utils:review instead — but sdlc-utils:review (the SDLC-phase "review" skill) doesn't own PR-description fixing. Based on the PR body and the new granular skills, the right replacement is scm-utils:request-a-review (PR creation/formatting/lifecycle) or possibly scm-utils:pr-workflow.
As written, a user following the deprecation notice would land on a skill that doesn't fit their goal.
| > **DEPRECATED:** This skill is moving to the sdlc-utils plugin. Use the `/sdlc-utils:review` skill instead. | |
| --- | |
| name: fix-pr | |
| description: > | |
| DEPRECATED: Use the scm-utils:request-a-review skill instead. | |
| Fix or update the PR description for the current branch to follow best practices. | |
| argument-hint: "[optional: PR number or URL]" | |
| allowed-tools: Bash, Read, Grep, Glob | |
| --- | |
| > **DEPRECATED:** Use the `/scm-utils:request-a-review` skill instead. |
|
|
||
| ### 4. UPDATE RULES FILE | ||
|
|
||
| Add the derived rule to `AGENTS.md` under `## Learned Behaviors`: |
There was a problem hiding this comment.
❔ Hard-coded AGENTS.md target without a fallback
The workflow writes the derived rule directly into AGENTS.md, and the README calls that out as the non-configurable default. Two concerns worth thinking about before the plugin hits real users:
- No
AGENTS.mdyet. If the workspace doesn't already have one, this step will create it implicitly, which isn't documented. Worth saying explicitly ("createsAGENTS.mdif missing"). - Target file is fixed. Some repos use
CLAUDE.md,.cursor/rules/, or a project-specific rules file as the canonical "learned behaviors" home. Since there's no config, the plugin will always append toAGENTS.mdeven in projects where that's the wrong file.
Not a blocker for a 1.0.0 plugin, but a good candidate for common-sense/auto-config style settings in a follow-up so the target file can be overridden per project (the auto-config pattern in .claude/rules/auto-config-pattern.md is a good template).
Summary
Changes from PR #301
All review feedback from PR #301 has been addressed:
plugin.jsonfrom incident-trackerChanges from PR #383 review (Henry)
marketplace.jsonto let CD workflow regenerate on merge (convention alignment)planvsspec-writingtrigger phrases to reduce agent ambiguity: plan owns task breakdown/implementation planning, spec-writing owns formal specification lifecycle managementspec-template.mdexists, plan already references it via relative pathTest plan
mise run lintto confirm formattingCo-Authored-By: Jack Oat <jack-nsheaps[bot]@users.noreply.github.com>