Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 46 additions & 19 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
name: Release

# Manual, no script. Cut a release by running this workflow with a version:
# • GitHub UI: Actions → Release → "Run workflow" → enter version (e.g. 0.4.0)
# • CLI: gh workflow run release.yml -f version=0.4.0
# It bumps the version in both manifests on main, commits, tags
# devline--v<version> (matching `claude plugin tag`), and creates the GitHub Release.
on:
push:
tags: ["v*"]
workflow_dispatch:
inputs:
version:
description: "Version to release, e.g. 0.4.0"
required: true
type: string

permissions:
contents: write
Expand All @@ -13,25 +22,43 @@ jobs:
steps:
- uses: actions/checkout@v4
with:
ref: main
fetch-depth: 0

- name: Generate changelog
id: changelog
- name: Bump, tag, and release
env:
GH_TOKEN: ${{ github.token }}
VERSION: ${{ inputs.version }}
run: |
PREV_TAG=$(git tag --sort=-v:refname | sed -n '2p')
if [ -n "$PREV_TAG" ]; then
LOG=$(git log "$PREV_TAG"..HEAD --pretty=format:"- %s (%h)" --no-merges)
echo "$VERSION" | grep -qP '^[0-9]+\.[0-9]+\.[0-9]+(-[0-9A-Za-z.]+)?$' \
|| { echo "::error::'$VERSION' is not semver (e.g. 0.4.0)"; exit 1; }
tag="devline--v$VERSION"
if git rev-parse "refs/tags/$tag" >/dev/null 2>&1; then
echo "::error::$tag already exists"; exit 1
fi

# Bump the version in both manifests (keeping them in agreement).
for f in .claude-plugin/plugin.json .claude-plugin/marketplace.json; do
jq --arg v "$VERSION" '
(if .version then .version = $v else . end)
| (if .plugins then .plugins |= map(if .version then .version = $v else . end) else . end)
' "$f" > "$f.tmp" && mv "$f.tmp" "$f"
done

git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add .claude-plugin/plugin.json .claude-plugin/marketplace.json
git commit -m "chore: release v$VERSION"
git push origin HEAD:main

# Changelog since the previous release tag.
prev=$(git tag --list 'devline--v*' --sort=-version:refname | head -1)
if [ -n "$prev" ]; then
notes=$(git log "$prev..HEAD" --pretty=format:'- %s (%h)' --no-merges)
else
LOG=$(git log --pretty=format:"- %s (%h)" --no-merges)
notes=$(git log --pretty=format:'- %s (%h)' --no-merges)
fi
{
echo "body<<EOF"
echo "$LOG"
echo "EOF"
} >> "$GITHUB_OUTPUT"

- name: Create GitHub release
uses: softprops/action-gh-release@v2
with:
body: ${{ steps.changelog.outputs.body }}
generate_release_notes: false

git tag "$tag"
git push origin "$tag"
printf '%s\n' "$notes" | gh release create "$tag" --title "$tag" --notes-file -
3 changes: 2 additions & 1 deletion .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
- name: Check hook scripts are executable
run: |
failed=0
for f in hooks/scripts/*.sh skills/*/scripts/*.sh; do
for f in hooks/scripts/*.sh skills/*/scripts/*.sh install.sh; do
[ -f "$f" ] || continue
if [ ! -x "$f" ]; then
echo "::error file=$f::Not executable"
Expand All @@ -28,6 +28,7 @@ jobs:
run: |
sudo apt-get install -y shellcheck
find hooks/scripts skills/*/scripts -name '*.sh' -print0 | xargs -0 shellcheck
shellcheck install.sh

- name: Validate JSON
run: |
Expand Down
170 changes: 77 additions & 93 deletions README.md

Large diffs are not rendered by default.

7 changes: 3 additions & 4 deletions agents/debugger.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,14 @@ description: "Use this agent for bugs, test failures, or unexpected behavior. Fo
tools: Read, Write, Edit, Bash, Grep, Glob, Skill, ToolSearch
model: opus

skills: kb-debugging, find-docs
skills: find-docs
---

You are a senior software engineer specializing in systematic debugging. You follow the scientific method — reproduce, gather evidence, form hypotheses, and confirm them before making changes.

## Scientific Debugging Process
For bug-pattern recognition (null/race/deadlock/leak/serialization catalogs) and language-specific debugging tools, consult `references/debugging.md`.

### Phase 0: Check Known Patterns
- **Read `CLAUDE.md`** — check the `## Lessons and Memory` section for known codebase patterns from previous pipeline runs. A past agent may have already documented the exact pattern causing this bug. If a lesson matches the symptoms, use it to skip directly to a targeted hypothesis.
## Scientific Debugging Process

### Phase 1: Reproduce
- Get the exact error message, stack trace, or symptom description
Expand Down
234 changes: 0 additions & 234 deletions agents/deep-review.md

This file was deleted.

Loading
Loading