chore: add opsmill agentic skills for commit, PR, and issue workflows#1110
Conversation
There was a problem hiding this comment.
4 issues found across 17 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name=".agents/skills/rebase/SKILL.md">
<violation number="1" location=".agents/skills/rebase/SKILL.md:114">
P2: Phase 4 gate expects "tests pass" but procedure only checks formatters/linters. The Intent-preserved gate's pass criteria requires tests to pass, and Phase 4 tells the agent to paste a test run, yet the execution steps only mention running formatters/linters — skipping the actual test suite. This creates a gap where an agent following the procedure will miss the gate's own test requirement.</violation>
</file>
<file name=".agents/skills/monitoring-pull-requests/SKILL.md">
<violation number="1" location=".agents/skills/monitoring-pull-requests/SKILL.md:185">
P2: `attempt_log[iteration]` has two conflicting schemas defined across Phase 2 and Phase 4. Phase 2 sets `failing_jobs`/`target_job`/`target_node`/`failure_excerpt`, Phase 4 overwrites with `fix_summary`/`files_changed`/`commit_sha`/`reproduced_locally`/`local_checks_passed`. An agent following both literally will lose data from the earlier schema.</violation>
</file>
<file name=".agents/skills/quality-gates/hooks/ship-gate-check.sh">
<violation number="1" location=".agents/skills/quality-gates/hooks/ship-gate-check.sh:23">
P2: Resolve `.claude/quality-gates` from the git worktree root, not the current working directory. As written, running a ship action from a subdirectory silently disables the hook.</violation>
<violation number="2" location=".agents/skills/quality-gates/hooks/ship-gate-check.sh:37">
P2: Allow for Git global options before the subcommand in protected-branch detection. The current regex misses common forms like `git -C . commit`.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| ``` | ||
|
|
||
| 2. Confirm the commit history looks correct (same number of local commits, no duplicates). | ||
| 3. If the project defines fast validation commands (formatters, linters), run them to catch any issues introduced by conflict resolution. Discover them from the project's own context — for example `AGENTS.md`/`CONTAINER`-style docs, a `Makefile`/`Taskfile`/`justfile`, `package.json` scripts, `pyproject.toml`/`tox.ini`, or a `pre-commit` config. Run whatever the project actually defines, then fix any issues introduced by conflict resolution. If the project defines no such commands, skip this step. |
There was a problem hiding this comment.
P2: Phase 4 gate expects "tests pass" but procedure only checks formatters/linters. The Intent-preserved gate's pass criteria requires tests to pass, and Phase 4 tells the agent to paste a test run, yet the execution steps only mention running formatters/linters — skipping the actual test suite. This creates a gap where an agent following the procedure will miss the gate's own test requirement.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .agents/skills/rebase/SKILL.md, line 114:
<comment>Phase 4 gate expects "tests pass" but procedure only checks formatters/linters. The Intent-preserved gate's pass criteria requires tests to pass, and Phase 4 tells the agent to paste a test run, yet the execution steps only mention running formatters/linters — skipping the actual test suite. This creates a gap where an agent following the procedure will miss the gate's own test requirement.</comment>
<file context>
@@ -0,0 +1,204 @@
+ ```
+
+2. Confirm the commit history looks correct (same number of local commits, no duplicates).
+3. If the project defines fast validation commands (formatters, linters), run them to catch any issues introduced by conflict resolution. Discover them from the project's own context — for example `AGENTS.md`/`CONTAINER`-style docs, a `Makefile`/`Taskfile`/`justfile`, `package.json` scripts, `pyproject.toml`/`tox.ini`, or a `pre-commit` config. Run whatever the project actually defines, then fix any issues introduced by conflict resolution. If the project defines no such commands, skip this step.
+
+> **Gate (T2-verify · P1):** paste the test run showing the rebased branch preserves local intent. See `../quality-gates/gates/primitives/evidence-before-done.md`.
</file context>
| @@ -0,0 +1,410 @@ | |||
| --- | |||
There was a problem hiding this comment.
P2: attempt_log[iteration] has two conflicting schemas defined across Phase 2 and Phase 4. Phase 2 sets failing_jobs/target_job/target_node/failure_excerpt, Phase 4 overwrites with fix_summary/files_changed/commit_sha/reproduced_locally/local_checks_passed. An agent following both literally will lose data from the earlier schema.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .agents/skills/monitoring-pull-requests/SKILL.md, line 185:
<comment>`attempt_log[iteration]` has two conflicting schemas defined across Phase 2 and Phase 4. Phase 2 sets `failing_jobs`/`target_job`/`target_node`/`failure_excerpt`, Phase 4 overwrites with `fix_summary`/`files_changed`/`commit_sha`/`reproduced_locally`/`local_checks_passed`. An agent following both literally will lose data from the earlier schema.</comment>
<file context>
@@ -0,0 +1,410 @@
+5. **Decide the order of attack.** Fix one failure per iteration. Prefer the cheapest one first (lint < test < build < e2e), because lint failures often mask deeper issues and are fast to fix. Record the chosen target in `attempt_log` for this iteration:
+
+ ```text
+ attempt_log[iteration] = {
+ failing_jobs: [<list of job names that failed>],
+ target_job: <the one being fixed this iteration>,
</file context>
|
|
||
| # ---- Gate A: branch discipline (Bash git only) ---- | ||
| # Tolerate leading whitespace, command separators, sudo/doas/command/env, and env-assignments. | ||
| if [ "$tool" = "Bash" ] && printf '%s' "$cmd" | grep -Eq '(^|[[:space:]]|[;&|(])(([A-Za-z_][A-Za-z0-9_]*=[^[:space:]]*|sudo|doas|command|env)[[:space:]]+)*git[[:space:]]+(commit|push)([[:space:]]|$)'; then |
There was a problem hiding this comment.
P2: Allow for Git global options before the subcommand in protected-branch detection. The current regex misses common forms like git -C . commit.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .agents/skills/quality-gates/hooks/ship-gate-check.sh, line 37:
<comment>Allow for Git global options before the subcommand in protected-branch detection. The current regex misses common forms like `git -C . commit`.</comment>
<file context>
@@ -0,0 +1,73 @@
+
+# ---- Gate A: branch discipline (Bash git only) ----
+# Tolerate leading whitespace, command separators, sudo/doas/command/env, and env-assignments.
+if [ "$tool" = "Bash" ] && printf '%s' "$cmd" | grep -Eq '(^|[[:space:]]|[;&|(])(([A-Za-z_][A-Za-z0-9_]*=[^[:space:]]*|sudo|doas|command|env)[[:space:]]+)*git[[:space:]]+(commit|push)([[:space:]]|$)'; then
+ branch=$(git -C "$proj" symbolic-ref --quiet --short HEAD 2>/dev/null || echo "")
+ case "$branch" in
</file context>
| [ -n "$proj" ] || proj="${CLAUDE_PROJECT_DIR:-.}" | ||
|
|
||
| # Activation + escape hatch. | ||
| [ -f "$proj/.claude/quality-gates/enabled" ] || exit 0 |
There was a problem hiding this comment.
P2: Resolve .claude/quality-gates from the git worktree root, not the current working directory. As written, running a ship action from a subdirectory silently disables the hook.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At .agents/skills/quality-gates/hooks/ship-gate-check.sh, line 23:
<comment>Resolve `.claude/quality-gates` from the git worktree root, not the current working directory. As written, running a ship action from a subdirectory silently disables the hook.</comment>
<file context>
@@ -0,0 +1,73 @@
+[ -n "$proj" ] || proj="${CLAUDE_PROJECT_DIR:-.}"
+
+# Activation + escape hatch.
+[ -f "$proj/.claude/quality-gates/enabled" ] || exit 0
+[ "${QUALITY_GATES_BYPASS:-}" = "1" ] && exit 0
+
</file context>
Summary
Vendors opsmill's shared agentic-workflow skills into this repository so
contributors using AI coding agents get the same opsmill-standard, repo-aware
workflows for everyday Git and GitHub tasks. These are tooling/documentation
files only — no SDK behavior changes.
Key Changes
commit,pr,rebase,monitoring-pull-requests,creating-issues,creating-prd, andgrilling-ideas— giving contributorsconsistent, opinionated workflows aligned with opsmill conventions.
quality-gatesskill (gate model, trust tiers, judge/anti-gamingprimitives, and a ship-gate hook) that the other skills reference.
skills-lock.json— each skill ispinned to its source in
opsmill/opsmill-skillswith a content hash, so syncsand updates from the central skills repo are traceable.
Related Context
Skills are sourced from the central
opsmill/opsmill-skillsrepository (
opsmill-dev/skills/*).skills-lock.jsonpins each one to a specificsource path and hash for reproducible updates.
Documentation Updates
None — these are self-documenting vendored skill files under
.agents/skills/.Test Plan
.agents/skills/andskills-lock.json(
git diff origin/stable...HEAD --stat).Summary by cubic
Vendors OpsMill’s shared workflow skills and quality-gate docs into
.agents/skills/to standardize commit/PR/issue/rebase flows with enforced gates. Tooling/docs only; no runtime or SDK changes.commit,pr,rebase,monitoring-pull-requests,creating-issues,creating-prd,grilling-ideas.quality-gates(gate model, independent judge and anti-gaming primitives, and a ship-gate hook).skills-lock.jsonpinning each skill toopsmill/opsmill-skillswith content hashes for reproducible updates.Written for commit ef89f8d. Summary will update on new commits.