Merge branch 'tatars'
This commit is contained in:
@@ -1 +0,0 @@
|
||||
Screenshots: stored in ~/downloads/screenshots, with date time in the filename
|
||||
@@ -1,100 +0,0 @@
|
||||
---
|
||||
description: Merge worktree changes and clean up safely
|
||||
---
|
||||
|
||||
# Merge Worktree and Cleanup
|
||||
|
||||
Merge changes from the current worktree into a target branch and clean up the worktree.
|
||||
|
||||
**Usage:** `/merge [target-branch]`
|
||||
|
||||
**Arguments:**
|
||||
- `$1`: Target branch to merge into (default: auto-detect main/master)
|
||||
|
||||
## Process
|
||||
|
||||
### 1. Pre-flight Checks
|
||||
|
||||
```bash
|
||||
CURRENT_BRANCH=$(git branch --show-current)
|
||||
WORKTREE_DIR=$(git rev-parse --git-common-dir)
|
||||
|
||||
if [[ ! "$WORKTREE_DIR" == *".git/worktrees"* ]]; then
|
||||
echo "❌ Error: You're not in a worktree"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! git diff-index --quiet HEAD --; then
|
||||
echo "❌ Error: You have uncommitted changes"
|
||||
git status --short
|
||||
exit 1
|
||||
fi
|
||||
```
|
||||
|
||||
### 2. Determine Target Branch
|
||||
|
||||
```bash
|
||||
TARGET_BRANCH="${1:-}"
|
||||
if [ -z "$TARGET_BRANCH" ]; then
|
||||
if git show-ref --verify --quiet refs/heads/main; then
|
||||
TARGET_BRANCH="main"
|
||||
elif git show-ref --verify --quiet refs/heads/master; then
|
||||
TARGET_BRANCH="master"
|
||||
else
|
||||
echo "❌ Error: Cannot auto-detect main branch"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
```
|
||||
|
||||
### 3. Update Target Branch
|
||||
|
||||
```bash
|
||||
WORKTREE_PATH=$(pwd)
|
||||
COMMON_DIR=$(git rev-parse --git-common-dir)
|
||||
REPO_ROOT=$(echo "$COMMON_DIR" | sed 's/\.git.*//' | sed 's/\/$//')
|
||||
if [ "$COMMON_DIR" = ".git" ]; then
|
||||
REPO_ROOT=$(git rev-parse --show-toplevel)
|
||||
fi
|
||||
|
||||
cd "$REPO_ROOT"
|
||||
git checkout "$TARGET_BRANCH"
|
||||
git pull origin "$TARGET_BRANCH"
|
||||
```
|
||||
|
||||
### 4. Merge
|
||||
|
||||
```bash
|
||||
git merge --no-ff "$CURRENT_BRANCH" -m "Merge branch '$CURRENT_BRANCH'"
|
||||
```
|
||||
|
||||
If you prefer a squash merge, do this instead:
|
||||
|
||||
```bash
|
||||
git merge --squash "$CURRENT_BRANCH"
|
||||
git commit -m "feat: <summary>"
|
||||
```
|
||||
|
||||
### 5. Push and Clean Up
|
||||
|
||||
```bash
|
||||
git push origin "$TARGET_BRANCH"
|
||||
|
||||
git worktree remove "$WORKTREE_PATH" --force || rm -rf "$WORKTREE_PATH"
|
||||
git branch -d "$CURRENT_BRANCH" || git branch -D "$CURRENT_BRANCH"
|
||||
```
|
||||
|
||||
### 6. Optional: Delete Remote Branch
|
||||
|
||||
```bash
|
||||
git push origin --delete "$CURRENT_BRANCH"
|
||||
```
|
||||
|
||||
## Language-specific checks
|
||||
|
||||
### Rust
|
||||
- `cargo check`
|
||||
- `cargo clippy` (clean up new warnings)
|
||||
|
||||
### TypeScript
|
||||
- `tsc`
|
||||
@@ -1,9 +0,0 @@
|
||||
---
|
||||
description: Rebase/merge upstream changes into the current branch
|
||||
---
|
||||
This command should only work while in a secondary branch (not main or master).
|
||||
|
||||
Commit any unstaged changes
|
||||
Fetch updates from the origin repo
|
||||
If there are new commits on the parent branch (typically origin/main), then merge them back into the current branch
|
||||
Solve any conflicts, and analyze the incoming changes to see if additional changes are required to the branch's code (e.g.: if something was renamed in the meantime in main, our new code may need to be adjusted)
|
||||
@@ -1,12 +1,13 @@
|
||||
_:
|
||||
{
|
||||
# Global rules (opencode/AGENTS.md) and the shared commands (merge, update)
|
||||
# come from the agent-skills home-manager module — opencode has no @file
|
||||
# imports, so the module concatenates the shared fragments into one file.
|
||||
# opencode also auto-loads skills from ~/.claude/skills and ~/.agents/skills.
|
||||
xdg.configFile = {
|
||||
# Global config file
|
||||
"opencode/opencode.json".source = ./opencode.json;
|
||||
|
||||
# Global rules (equivalent to ~/.claude/CLAUDE.md)
|
||||
"opencode/AGENTS.md".source = ./AGENTS.md;
|
||||
|
||||
# Custom agents
|
||||
"opencode/agents/oracle.md".source = ./agents/oracle.md;
|
||||
"opencode/agents/explorer.md".source = ./agents/explorer.md;
|
||||
@@ -16,10 +17,8 @@ _:
|
||||
"opencode/agents/designer-bold.md".source = ./agents/designer-bold.md;
|
||||
"opencode/agents/analyze-branch.md".source = ./agents/analyze-branch.md;
|
||||
|
||||
# Global commands
|
||||
# Global commands (opencode-specific ones only)
|
||||
"opencode/commands/work.md".source = ./commands/work.md;
|
||||
"opencode/commands/merge.md".source = ./commands/merge.md;
|
||||
"opencode/commands/update.md".source = ./commands/update.md;
|
||||
"opencode/commands/smart-debug.md".source = ./commands/smart-debug.md;
|
||||
"opencode/commands/tdd-cycle.md".source = ./commands/tdd-cycle.md;
|
||||
"opencode/commands/security-scan.md".source = ./commands/security-scan.md;
|
||||
|
||||
@@ -1,32 +1,12 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}:
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
pi = pkgs.callPackage ../../../pkgs/pi/package.nix { };
|
||||
|
||||
skills = inputs.agent-skills;
|
||||
|
||||
# pi has no `@file` imports in context files, so fragments get concatenated
|
||||
# into one AGENTS.md. Skills need no wiring: pi reads ~/.agents/skills, which
|
||||
# the agent-skills module already links.
|
||||
agentsMd = pkgs.writeText "pi-AGENTS.md" (
|
||||
lib.concatMapStringsSep "\n" builtins.readFile [
|
||||
"${skills}/claude-md/machines/${config.programs.agentSkills.machine}.md"
|
||||
"${skills}/claude-md/operating.md"
|
||||
"${skills}/claude-md/writing.md"
|
||||
"${skills}/claude-md/code-comments.md"
|
||||
"${skills}/claude-md/RTK.md"
|
||||
]
|
||||
);
|
||||
in
|
||||
{
|
||||
home.packages = [ pi ];
|
||||
|
||||
# ~/.pi/agent/AGENTS.md comes from the agent-skills home-manager module
|
||||
# (pi has no @file imports, so the module concatenates the shared fragments).
|
||||
# Pi reads skills straight from ~/.agents/skills, which the module links.
|
||||
# Settings stay unmanaged: pi writes ~/.pi/agent/settings.json itself from
|
||||
# /settings, /trust and `pi config`.
|
||||
home.file.".pi/agent/AGENTS.md".source = agentsMd;
|
||||
home.packages = [ pi ];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user