Skip to content

chore: add opsmill agentic skills for commit, PR, and issue workflows#1110

Merged
dgarros merged 1 commit into
stablefrom
dga/chore-add-skills-a7fp7
Jun 28, 2026
Merged

chore: add opsmill agentic skills for commit, PR, and issue workflows#1110
dgarros merged 1 commit into
stablefrom
dga/chore-add-skills-a7fp7

Conversation

@dgarros

@dgarros dgarros commented Jun 28, 2026

Copy link
Copy Markdown
Contributor

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

  • Adds opsmill's skill set: commit, pr, rebase, monitoring-pull-requests,
    creating-issues, creating-prd, and grilling-ideas — giving contributors
    consistent, opinionated workflows aligned with opsmill conventions.
  • Adds the shared quality-gates skill (gate model, trust tiers, judge/anti-gaming
    primitives, and a ship-gate hook) that the other skills reference.
  • Records skill provenance and integrity in skills-lock.json — each skill is
    pinned to its source in opsmill/opsmill-skills with a content hash, so syncs
    and updates from the central skills repo are traceable.

Related Context

Skills are sourced from the central opsmill/opsmill-skills
repository (opsmill-dev/skills/*). skills-lock.json pins each one to a specific
source path and hash for reproducible updates.

Documentation Updates

None — these are self-documenting vendored skill files under .agents/skills/.

Test Plan

  • No code paths changed; CI lint/test suites should pass unchanged.
  • Verify the added files are confined to .agents/skills/ and skills-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.

  • New Features
    • Added skills: commit, pr, rebase, monitoring-pull-requests, creating-issues, creating-prd, grilling-ideas.
    • Added shared quality-gates (gate model, independent judge and anti-gaming primitives, and a ship-gate hook).
    • Added skills-lock.json pinning each skill to opsmill/opsmill-skills with content hashes for reproducible updates.

Written for commit ef89f8d. Summary will update on new commits.

Review in cubic

@dgarros dgarros added type/housekeeping Maintenance task ci/skip-changelog Don't include this PR in the changelog labels Jun 28, 2026

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 @@
---

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>

@dgarros dgarros merged commit 4179e7a into stable Jun 28, 2026
15 checks passed
@dgarros dgarros deleted the dga/chore-add-skills-a7fp7 branch June 28, 2026 10:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/skip-changelog Don't include this PR in the changelog type/housekeeping Maintenance task

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant