Use canonical `ai.skillz` provider links
Replace the local `commit-msg` base and OpenCode shim with canonical ignored links while preserving Piker's tracked style guide. Also, - expose the full skill catalog to Claude and OpenCode - add canonical slash commands, including `run-tests` - keep hybrid runtime state local (this patch was generated in some part by `opencode` using `gpt-5.6-sol` (`openai`))backfiller_deep_fixes
parent
c6ec3d4144
commit
43d7a3edad
|
|
@ -1,119 +0,0 @@
|
|||
---
|
||||
name: commit-msg
|
||||
description: >
|
||||
Generate piker-style git commit messages from staged
|
||||
changes or prompt input. Use when the user asks for a
|
||||
commit message or invokes a commit-message command.
|
||||
compatibility: >
|
||||
Requires git and a coding harness able to read and
|
||||
write files in the active checkout.
|
||||
metadata:
|
||||
author: goodboy
|
||||
version: "1.0"
|
||||
---
|
||||
|
||||
# Piker Git Commit Message Generator
|
||||
|
||||
Generate a commit message from the staged diff following
|
||||
the piker project's conventions, learned from 500 repo
|
||||
commits.
|
||||
|
||||
For the full style guide with verb frequencies,
|
||||
section markers, abbreviations, piker-specific terms,
|
||||
and examples, see
|
||||
[style-guide-reference.md](./style-guide-reference.md).
|
||||
|
||||
## Safety
|
||||
|
||||
- Never run `git commit`, amend, rebase, merge, or push
|
||||
unless the user explicitly requests that operation.
|
||||
- Do not stage or unstage files for a single-message run.
|
||||
- Never change issue, plan, or checklist state merely
|
||||
because the related implementation is complete.
|
||||
- Preserve unrelated worktree changes.
|
||||
|
||||
## Working Context
|
||||
|
||||
1. Run `git rev-parse --show-toplevel`,
|
||||
`git rev-parse --git-dir`, and
|
||||
`git rev-parse --git-common-dir`.
|
||||
2. If the git dir differs from the common dir, report the
|
||||
active worktree before generating the message.
|
||||
3. Inspect `git status --short`, the complete staged diff,
|
||||
`git diff --staged --check`, and recent commit history.
|
||||
4. If nothing is staged, stop and tell the user. Prompt
|
||||
text may clarify intent but does not replace a staged
|
||||
patch unless the user explicitly asks for a draft with
|
||||
no staged changes.
|
||||
|
||||
## Message Style
|
||||
|
||||
- **Subject**: ~50 chars, present tense verb, use
|
||||
backticks for code refs; hard maximum 67 columns
|
||||
- **Body**: only for complex/multi-file changes,
|
||||
filled close to a 67-column maximum
|
||||
- **Section markers**: Also, / Deats, / Other,
|
||||
- **Bullets**: use `-` style
|
||||
- **Tone**: technical but casual (piker style)
|
||||
|
||||
Use any user-supplied scope or description as context,
|
||||
but verify it against the staged patch. The message must
|
||||
describe the complete staged boundary, not only the most
|
||||
obvious file.
|
||||
|
||||
## Provenance
|
||||
|
||||
If staged paths include prompt-I/O log entries under
|
||||
`ai/prompt-io/`, add one trailer per non-raw log file:
|
||||
|
||||
```
|
||||
Prompt-IO: ai/prompt-io/<service>/<entry>.md
|
||||
```
|
||||
|
||||
When the patch has substantive AI-authored changes but no
|
||||
prompt-I/O entry is staged, remind the user that repository
|
||||
policy may require one. Do not block message generation.
|
||||
|
||||
Always identify the active harness and model from runtime
|
||||
context rather than hardcoding Claude Code or OpenCode.
|
||||
|
||||
When the harness assisted with the patch, append:
|
||||
|
||||
```
|
||||
(this patch was generated in some part by `<harness>` using `<model>` (`<provider>`))
|
||||
```
|
||||
|
||||
When it generated only the message, append:
|
||||
|
||||
```
|
||||
(this commit msg was generated in some part by `<harness>` using `<model>` (`<provider>`))
|
||||
```
|
||||
|
||||
## Output Files
|
||||
|
||||
Write the final message to both of these paths relative to
|
||||
the active checkout returned by `git rev-parse
|
||||
--show-toplevel`:
|
||||
|
||||
- `.claude/skills/commit-msg/msgs/<timestamp>_<hash>_commit_msg.md`
|
||||
- `.claude/git_commit_msg_LATEST.md`
|
||||
|
||||
Use UTC `<timestamp>` format `YYYYMMDDTHHMMSSZ` and the
|
||||
first seven characters of the current `HEAD` hash. Create
|
||||
the archive directory when needed. The `.claude` path is a
|
||||
legacy repository artifact location shared by all coding
|
||||
harnesses; it does not imply which harness generated the
|
||||
message.
|
||||
|
||||
Finish by reporting both paths and this review-first
|
||||
command without running it:
|
||||
|
||||
```
|
||||
git commit --edit --file .claude/git_commit_msg_LATEST.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
**Analysis date:** 2026-01-27
|
||||
**Commits analyzed:** 500 from piker repository
|
||||
**Maintained by:** Tyler Goodlet
|
||||
|
|
@ -110,6 +110,12 @@ ENV/
|
|||
.claude/*_commit_*.md
|
||||
.claude/*_commit*.toml
|
||||
|
||||
# ai.skillz/commit-msg
|
||||
.claude/skills/commit-msg/msgs/
|
||||
.claude/skills/commit-msg/conf.toml
|
||||
.claude/git_commit_msg_LATEST.md
|
||||
.opencode/skills/commit-msg/SKILL.md
|
||||
|
||||
# nix develop --profile .nixdev
|
||||
.nixdev*
|
||||
|
||||
|
|
@ -130,3 +136,172 @@ gitea/
|
|||
|
||||
# LLM conversations that should remain private
|
||||
docs/conversations/
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:claude:run-tests
|
||||
/.claude/skills/run-tests/SKILL.md
|
||||
# END ai.skillz: direct:symlink:claude:run-tests
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:opencode:run-tests
|
||||
/.opencode/skills/run-tests/SKILL.md
|
||||
# END ai.skillz: direct:symlink:opencode:run-tests
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:opencode:command:run-tests
|
||||
/.opencode/commands/run-tests.md
|
||||
# END ai.skillz: direct:symlink:opencode:command:run-tests
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:claude:close-wkt
|
||||
/.claude/skills/close-wkt
|
||||
# END ai.skillz: direct:symlink:claude:close-wkt
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:opencode:close-wkt
|
||||
/.opencode/skills/close-wkt
|
||||
# END ai.skillz: direct:symlink:opencode:close-wkt
|
||||
|
||||
# BEGIN ai.skillz: runtime:code-review-changes
|
||||
.claude/review_context.md
|
||||
.claude/review_regression.md
|
||||
# END ai.skillz: runtime:code-review-changes
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:claude:code-review-changes
|
||||
/.claude/skills/code-review-changes
|
||||
# END ai.skillz: direct:symlink:claude:code-review-changes
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:opencode:code-review-changes
|
||||
/.opencode/skills/code-review-changes
|
||||
# END ai.skillz: direct:symlink:opencode:code-review-changes
|
||||
|
||||
# BEGIN ai.skillz: runtime:commit-msg
|
||||
.claude/skills/commit-msg/msgs/
|
||||
.claude/skills/commit-msg/conf.toml
|
||||
.claude/git_commit_msg_LATEST.md
|
||||
# END ai.skillz: runtime:commit-msg
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:claude:commit-msg
|
||||
/.claude/skills/commit-msg/SKILL.md
|
||||
# END ai.skillz: direct:symlink:claude:commit-msg
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:opencode:commit-msg
|
||||
/.opencode/skills/commit-msg/SKILL.md
|
||||
# END ai.skillz: direct:symlink:opencode:commit-msg
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:claude:dep-supersede-scan
|
||||
/.claude/skills/dep-supersede-scan
|
||||
# END ai.skillz: direct:symlink:claude:dep-supersede-scan
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:opencode:dep-supersede-scan
|
||||
/.opencode/skills/dep-supersede-scan
|
||||
# END ai.skillz: direct:symlink:opencode:dep-supersede-scan
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:claude:gish
|
||||
/.claude/skills/gish
|
||||
# END ai.skillz: direct:symlink:claude:gish
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:opencode:gish
|
||||
/.opencode/skills/gish
|
||||
# END ai.skillz: direct:symlink:opencode:gish
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:claude:inter-skill-review
|
||||
/.claude/skills/inter-skill-review
|
||||
# END ai.skillz: direct:symlink:claude:inter-skill-review
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:opencode:inter-skill-review
|
||||
/.opencode/skills/inter-skill-review
|
||||
# END ai.skillz: direct:symlink:opencode:inter-skill-review
|
||||
|
||||
# BEGIN ai.skillz: runtime:open-wkt
|
||||
.claude/wkts/
|
||||
claude_wkts
|
||||
# END ai.skillz: runtime:open-wkt
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:claude:open-wkt
|
||||
/.claude/skills/open-wkt
|
||||
# END ai.skillz: direct:symlink:claude:open-wkt
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:opencode:open-wkt
|
||||
/.opencode/skills/open-wkt
|
||||
# END ai.skillz: direct:symlink:opencode:open-wkt
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:claude:plan-io
|
||||
/.claude/skills/plan-io
|
||||
# END ai.skillz: direct:symlink:claude:plan-io
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:opencode:plan-io
|
||||
/.opencode/skills/plan-io
|
||||
# END ai.skillz: direct:symlink:opencode:plan-io
|
||||
|
||||
# BEGIN ai.skillz: runtime:pr-msg
|
||||
.claude/skills/pr-msg/msgs/
|
||||
.claude/skills/pr-msg/pr_msg_LATEST.md
|
||||
# END ai.skillz: runtime:pr-msg
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:claude:pr-msg
|
||||
/.claude/skills/pr-msg/SKILL.md
|
||||
/.claude/skills/pr-msg/references
|
||||
/.claude/skills/pr-msg/scripts
|
||||
# END ai.skillz: direct:symlink:claude:pr-msg
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:opencode:pr-msg
|
||||
/.opencode/skills/pr-msg/SKILL.md
|
||||
/.opencode/skills/pr-msg/references
|
||||
/.opencode/skills/pr-msg/scripts
|
||||
# END ai.skillz: direct:symlink:opencode:pr-msg
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:claude:prompt-io
|
||||
/.claude/skills/prompt-io
|
||||
# END ai.skillz: direct:symlink:claude:prompt-io
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:opencode:prompt-io
|
||||
/.opencode/skills/prompt-io
|
||||
# END ai.skillz: direct:symlink:opencode:prompt-io
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:claude:py-codestyle
|
||||
/.claude/skills/py-codestyle
|
||||
# END ai.skillz: direct:symlink:claude:py-codestyle
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:opencode:py-codestyle
|
||||
/.opencode/skills/py-codestyle
|
||||
# END ai.skillz: direct:symlink:opencode:py-codestyle
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:claude:resolve-conflicts
|
||||
/.claude/skills/resolve-conflicts
|
||||
# END ai.skillz: direct:symlink:claude:resolve-conflicts
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:opencode:resolve-conflicts
|
||||
/.opencode/skills/resolve-conflicts
|
||||
# END ai.skillz: direct:symlink:opencode:resolve-conflicts
|
||||
|
||||
# BEGIN ai.skillz: runtime:taken-export
|
||||
.ai/taken/exports/
|
||||
# END ai.skillz: runtime:taken-export
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:claude:taken-export
|
||||
/.claude/skills/taken-export
|
||||
# END ai.skillz: direct:symlink:claude:taken-export
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:opencode:taken-export
|
||||
/.opencode/skills/taken-export
|
||||
# END ai.skillz: direct:symlink:opencode:taken-export
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:claude:yt-url-lookup
|
||||
/.claude/skills/yt-url-lookup
|
||||
# END ai.skillz: direct:symlink:claude:yt-url-lookup
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:opencode:yt-url-lookup
|
||||
/.opencode/skills/yt-url-lookup
|
||||
# END ai.skillz: direct:symlink:opencode:yt-url-lookup
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:claude:command:branch-in-new-terminal
|
||||
/.claude/commands/branch-in-new-terminal.md
|
||||
# END ai.skillz: direct:symlink:claude:command:branch-in-new-terminal
|
||||
|
||||
# BEGIN ai.skillz: runtime:branch-in-new-terminal
|
||||
.claude/.current_session
|
||||
# END ai.skillz: runtime:branch-in-new-terminal
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:opencode:command:commit-msg
|
||||
/.opencode/commands/commit-msg.md
|
||||
# END ai.skillz: direct:symlink:opencode:command:commit-msg
|
||||
|
||||
# BEGIN ai.skillz: direct:symlink:opencode:command:taken-export
|
||||
/.opencode/commands/taken-export.md
|
||||
# END ai.skillz: direct:symlink:opencode:command:taken-export
|
||||
|
|
|
|||
|
|
@ -1,10 +0,0 @@
|
|||
---
|
||||
description: Generate a piker-style message for staged changes.
|
||||
---
|
||||
|
||||
Load the `commit-msg` skill and follow it completely for the currently
|
||||
staged changes. Do not run `git commit` unless the user explicitly asks.
|
||||
Keep all workflow and style decisions in the shared skill rather than
|
||||
duplicating them in this OpenCode command.
|
||||
|
||||
Additional context from the user: $ARGUMENTS
|
||||
Loading…
Reference in New Issue