From 335f85270f8abc8481dad29123bf0eeb6324e69e Mon Sep 17 00:00:00 2001 From: Pierre-Marie Charavel Date: Sun, 19 Jul 2026 17:35:20 -0400 Subject: [PATCH] Update --- .config/opencode/AGENTS.md | 4 ++ .config/opencode/agents/git-push.md | 65 --------------------- .config/opencode/agents/git.md | 87 +++++++++++++++++++++++++++++ .config/opencode/opencode.json | 17 ++++++ 4 files changed, 108 insertions(+), 65 deletions(-) create mode 100644 .config/opencode/AGENTS.md delete mode 100644 .config/opencode/agents/git-push.md create mode 100644 .config/opencode/agents/git.md create mode 100644 .config/opencode/opencode.json diff --git a/.config/opencode/AGENTS.md b/.config/opencode/AGENTS.md new file mode 100644 index 0000000..da61940 --- /dev/null +++ b/.config/opencode/AGENTS.md @@ -0,0 +1,4 @@ +- Prefer concise, readable code over clever one-liners +- No unnecessary comments — code should be self-documenting +- Docker-friendly: no hardcoded paths, use env vars for config +- Use the git subagent to handle git operations and generating commit messages. diff --git a/.config/opencode/agents/git-push.md b/.config/opencode/agents/git-push.md deleted file mode 100644 index 9d244cd..0000000 --- a/.config/opencode/agents/git-push.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -description: Use this agent when the user wants to commit and push changes to git -mode: subagent -model: opencode-go/deepseek-v4-flash -permission: - edit: deny - bash: - "*": ask - "git *": allow - "grep *": allow - "cat *": allow - "list *": allow - webfetch: deny ---- - -Your role is to add changes to git, commit and push to git. -Commit messages must adhere to the structure and rules defined in this file. - -# Commit messages - -## Structure - -``` -[optional scope]! : - -[optional body] -[optional footer(s)] -``` - -## Common types - -- feat: a new feature -- fix: a bug fix -- docs: documentation -- style: formatting -- refactor: code restructure -- perf: performance improvement -- test: tests -- chore: maintenance tasks -- build: build/dependencies -- ci: CI/CD workflow -- revert: undo previous commit - -## Rules - -- Use imperative mood: Add, Fix, Update, Remove -- Keep scope clear: e.g., fix(auth), feat(ui) -- Write concise descriptions: max 50 characters in header -- Separate body from header: one blank line before body -- Avoid vague messages: never use update, change, or stuff -- Document breaking changes clearly -- Use `!` or a `BREAKING CHANGE` footer to indicate breaking changes. - -## Examples - -``` -refactor(auth): separate validation logic - -- Extract validation functions from controller -- Improve readability and maintainability -``` - -# Push - -Push changes to git with the commit message diff --git a/.config/opencode/agents/git.md b/.config/opencode/agents/git.md new file mode 100644 index 0000000..0bc9a4e --- /dev/null +++ b/.config/opencode/agents/git.md @@ -0,0 +1,87 @@ +--- +description: Generates git commit message from changes, handle git operations +mode: subagent +model: kimi-for-coding/k2p7 +Thinking: "OFF" +hidden: false +permission: + edit: deny + bash: allow + read: allow + glob: allow + grep: allow + list: allow +--- + +# Commit messages + +## Specification + +The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119. + +- Commits MUST be prefixed with a type, which consists of a noun, feat, fix, etc., followed by the OPTIONAL scope, OPTIONAL !, and REQUIRED terminal colon and space. +- The type feat MUST be used when a commit adds a new feature to your application or library. +- The type fix MUST be used when a commit represents a bug fix for your application. +- A scope MAY be provided after a type. A scope MUST consist of a noun describing a section of the codebase surrounded by parenthesis, e.g., fix(parser): +- A description MUST immediately follow the colon and space after the type/scope prefix. The description is a short summary of the code changes, e.g., fix: array parsing issue when multiple spaces were contained in string. +- A longer commit body MAY be provided after the short description, providing additional contextual information about the code changes. The body MUST begin one blank line after the description. +- A commit body is free-form and MAY consist of any number of newline separated paragraphs. +- One or more footers MAY be provided one blank line after the body. Each footer MUST consist of a word token, followed by either a : or # separator, followed by a string value (this is inspired by the git trailer convention). +- A footer’s token MUST use - in place of whitespace characters, e.g., Acked-by (this helps differentiate the footer section from a multi-paragraph body). An exception is made for BREAKING CHANGE, which MAY also be used as a token. +- A footer’s value MAY contain spaces and newlines, and parsing MUST terminate when the next valid footer token/separator pair is observed. +- Breaking changes MUST be indicated in the type/scope prefix of a commit, or as an entry in the footer. +- If included as a footer, a breaking change MUST consist of the uppercase text BREAKING CHANGE, followed by a colon, space, and description, e.g., BREAKING CHANGE: environment variables now take precedence over config files. +- If included in the type/scope prefix, breaking changes MUST be indicated by a ! immediately before the :. If ! is used, BREAKING CHANGE: MAY be omitted from the footer section, and the commit description SHALL be used to describe the breaking change. +- Types other than feat and fix MAY be used in your commit messages, e.g., docs: update ref docs. +- The units of information that make up Conventional Commits MUST NOT be treated as case-sensitive by implementors, with the exception of BREAKING CHANGE which MUST be uppercase. +- BREAKING-CHANGE MUST be synonymous with BREAKING CHANGE, when used as a token in a footer. + +## Examples + +Commit message with description and breaking change footer +``` +feat: allow provided config object to extend other configs + +BREAKING CHANGE: `extends` key in config file is now used for extending other config files +``` + +Commit message with ! to draw attention to breaking change +``` +feat!: send an email to the customer when a product is shipped +``` + +Commit message with scope and ! to draw attention to breaking change +``` +feat(api)!: send an email to the customer when a product is shipped +``` + +Commit message with both ! and BREAKING CHANGE footer +``` +feat!: drop support for Node 6 + +BREAKING CHANGE: use JavaScript features not available in Node 6. +``` + +Commit message with no body +``` +docs: correct spelling of CHANGELOG +``` + +Commit message with scope +``` +feat(lang): add Polish language +``` + +Commit message with multi-paragraph body and multiple footers +``` +fix: prevent racing of requests + +Introduce a request id and a reference to latest request. Dismiss +incoming responses other than from latest request. + +Remove timeouts which were used to mitigate the racing issue but are +obsolete now. + +Reviewed-by: Z +Refs: #123 +``` diff --git a/.config/opencode/opencode.json b/.config/opencode/opencode.json new file mode 100644 index 0000000..ed89b3f --- /dev/null +++ b/.config/opencode/opencode.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://opencode.ai/config.json", + "agent": { + "build": { + "permission": + { + "git": "allow" + } + }, + "plan": { + "permission": + { + "git": "allow" + } + } + } +}