You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When the OpenCode (OC) agent makes commits on PRs, it sometimes uses non-conventional commit messages (e.g. Fixed link. Issues need gh auth.) instead of following the Conventional Commits format (fix:, chore:, etc.) enforced by lint-pr-title.yml.
This was observed in PR #232 where the agent committed with messages like:
Fixed link. Issues need gh auth.
Expected behaviour
All commits should follow Conventional Commits format, as documented in the maintenance skill:
fix:, feat:, chore:, ci:, docs:, refactor:, etc.
Lowercase, imperative, <72 chars, no trailing period
Why this matters
lint-pr-title.yml rejects PR titles not matching ^(feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert)(\(.+\))?!?: .+
semantic-release maps commit prefixes to version bumps — wrong prefix = wrong release behaviour
Non-conventional commits create noisy git history
Theoretical root causes
Skill not loaded before committing — The maintenance skill contains commit conventions but may not be loaded before the agent makes its first commit. The skill is loaded on-demand via skill({ name: "maintenance" }), not automatically.
Agent defaults to natural language — Without the skill in context, the agent falls back to casual commit messages like it would in any other project.
System prompt doesn't enforce conventions — The OC agent's system prompt may not include a hard instruction to always follow Conventional Commits format.
Proposed investigation
Review the OC agent's system prompt and session initialization to check if commit conventions are enforced
Check whether the maintenance skill is auto-loaded or must be triggered manually
Consider adding Conventional Commits rules directly to the system prompt (not just in the skill)
Problem
When the OpenCode (OC) agent makes commits on PRs, it sometimes uses non-conventional commit messages (e.g.
Fixed link. Issues need gh auth.) instead of following the Conventional Commits format (fix:,chore:, etc.) enforced bylint-pr-title.yml.This was observed in PR #232 where the agent committed with messages like:
Fixed link. Issues need gh auth.Expected behaviour
All commits should follow Conventional Commits format, as documented in the
maintenanceskill:fix:,feat:,chore:,ci:,docs:,refactor:, etc.Why this matters
lint-pr-title.ymlrejects PR titles not matching^(feat|fix|docs|style|refactor|perf|test|build|ci|chore|revert)(\(.+\))?!?: .+Theoretical root causes
Skill not loaded before committing — The
maintenanceskill contains commit conventions but may not be loaded before the agent makes its first commit. The skill is loaded on-demand viaskill({ name: "maintenance" }), not automatically.Agent defaults to natural language — Without the skill in context, the agent falls back to casual commit messages like it would in any other project.
System prompt doesn't enforce conventions — The OC agent's system prompt may not include a hard instruction to always follow Conventional Commits format.
Proposed investigation
maintenanceskill is auto-loaded or must be triggered manuallyBranch target
Targets
main, notdevelop:Commit type note
Use
chore:orci:prefix — notfix:orfeat:— to avoid triggering a semantic-release bump.Acceptance criteria
chore:orci:prefixBacklinks