Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
6e44778
Add Claude Code support files
jnasbyupgrade Oct 7, 2025
6605c58
Add comprehensive test improvement analysis
jnasbyupgrade Oct 7, 2025
13ac2c8
Ignore Claude local settings files
jnasbyupgrade Oct 7, 2025
9e648dd
Ignore Claude local settings and fix branch detection
jnasbyupgrade Oct 7, 2025
8384617
Fix psql invocation to ignore .psqlrc
jnasbyupgrade Oct 7, 2025
6b2e9b1
Add smart branch detection for pgxntool
jnasbyupgrade Oct 7, 2025
d5598cc
Document that make clean is unnecessary before tests
jnasbyupgrade Oct 7, 2025
26470ed
Fix test output normalization and cleanup bugs
jnasbyupgrade Oct 7, 2025
fb112cc
Add BATS testing framework (work in progress)
jnasbyupgrade Oct 13, 2025
1e9c40b
Fix BATS dist test to create its own distribution
jnasbyupgrade Oct 13, 2025
ef9ca9b
Add complete BATS test framework
jnasbyupgrade Oct 24, 2025
ca90031
Refactor BATS assertions into separate file
jnasbyupgrade Oct 27, 2025
12fe059
Replace legacy tests with BATS test system
jnasbyupgrade Nov 7, 2025
b39b4c1
Add pollution detection for test re-runs and smart test execution
jnasbyupgrade Nov 10, 2025
785e305
Add file staging verification to commit workflow
jnasbyupgrade Nov 10, 2025
082470c
Share commit.md with pgxntool via symlink
jnasbyupgrade Nov 11, 2025
e2d9642
Add BATS assertion functions and refactor tests
jnasbyupgrade Dec 12, 2025
d9715e4
Merge branch 'decibel:master' into add-claude-code-support
jnasbyupgrade Dec 12, 2025
c164500
Add PostgreSQL detection and tests for pg_tle support
jnasbyupgrade Dec 17, 2025
571beb0
Convert commit command to symlink and reorganize test directory
jnasbyupgrade Dec 31, 2025
8b24b76
Add `pg_tle` tests and update test infrastructure
jnasbyupgrade Dec 31, 2025
e9da851
Add tests for optional features and improve foundation handling
jnasbyupgrade Jan 6, 2026
c1a9bee
Add test support for pg_tle version changes and improve test infrastr…
jnasbyupgrade Jan 8, 2026
c8e13ff
Consolidate template repository and simplify commit workflow
jnasbyupgrade Jan 9, 2026
f05582c
Merge pg_tle branch into pgxntool-test worktree
jnasbyupgrade Jan 12, 2026
5ceb101
Fix helper loading path in test/standard/ test files
jnasbyupgrade Jan 12, 2026
6a5e9d9
Fix foundation test timestamp issue and streamline test infrastructure
jnasbyupgrade Jan 15, 2026
b23a6eb
Merge pg_tle branch from ~/git/pgxntool-test
jnasbyupgrade Jan 15, 2026
ada9512
Reorganize .envs directory to test/.envs/
jnasbyupgrade Jan 29, 2026
1fd1dd3
Merge origin/master and fix worktree detection
jnasbyupgrade Feb 3, 2026
90058db
Add tests for pgxntool 91da35b; convert commit command to skill
jnasbyupgrade Feb 25, 2026
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
229 changes: 0 additions & 229 deletions .claude/commands/commit.md

This file was deleted.

22 changes: 21 additions & 1 deletion .claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,27 @@
"Bash(DEBUG=3 test/bats/bin/bats:*)",
"Bash(DEBUG=4 test/bats/bin/bats:*)",
"Bash(DEBUG=5 test/bats/bin/bats:*)",
"Edit"
"Bash(bash .claude/skills/commit/scripts/*)",
"Bash(find:*)",
"Bash(gh pr list:*)",
"Bash(gh pr view:*)",
"Bash(gh repo view:*)",
"Bash(git checkout:*)",
"Bash(git fetch:*)",
"Bash(git ls-tree:*)",
"Bash(git merge:*)",
"Bash(git rebase:*)",
"Bash(git rev-parse:*)",
"Bash(git worktree:*)",
"Bash(grep:*)",
"Bash(ls:*)",
"Bash(make html:*)",
"Bash(make test-extra:*)",
"Bash(make test:*)",
"Bash(readlink:*)",
"Bash(tee:*)",
"Edit",
"Skill(building-claude-code-skills)"
],
"additionalDirectories": [
"/tmp/",
Expand Down
119 changes: 119 additions & 0 deletions .claude/skills/commit/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
---
name: commit
description: |
Create git commits across pgxntool and pgxntool-test repositories following project
standards. Preprocesses repo info, runs tests, drafts cross-referenced commit messages,
and executes two-phase commits with hash injection.

Use when: "commit", "create commit", "commit changes", "/commit"
allowed-tools: Bash(git status:*), Bash(git log:*), Bash(git add:*), Bash(git diff:*), Bash(git commit:*), Bash(git branch:*), Bash(bash .claude/skills/commit/scripts/*), Bash(make test:*), Read, Edit, Task
---

# Commit Skill

Create git commits following project standards and safety protocols for pgxntool-test.

## Critical Requirements

| Rule | Details |
|------|---------|
| **Git Safety** | Never update git config. Never force push. Never skip hooks unless requested. |
| **Attribution** | No "Generated with Claude Code" in body. Co-Authored-By trailer is OK. |
| **Multi-Repo** | Commit BOTH repos if both have changes (unless told otherwise). No empty commits. |
| **Testing** | ALL tests must pass. ANY failure = STOP and ask user. No rationalizing failures. |
| **HISTORY.asc** | Update for significant user-visible pgxntool changes. Propose entry, get confirmation. |

## Workflow

### 1. Launch Tests (Background)

Use Task tool to launch test subagent to run `make test` in background.
Skip only if user explicitly says to.

### 2. Gather Repository Info

Run the preprocessing script to collect all git data in one call:

```bash
bash .claude/skills/commit/scripts/gather-repo-info.sh ../pgxntool .
```

Review output. Identify which repos have changes.

### 3. Check HISTORY.asc (pgxntool changes only)

Read `../pgxntool/HISTORY.asc`. Determine if changes are significant and user-visible:
- Yes: New features, behavior changes, bug fixes users would notice
- No: Internal refactoring, test changes, cleanup, documentation fixes

If update needed:
1. Propose entry in AsciiDoc format (use `==` for heading)
2. Ask for confirmation BEFORE proceeding
3. Add to STABLE section at TOP of file (create section if missing):
```
STABLE
------
== [Entry heading]
[Entry description]

[existing content...]
```

### 4. Draft Commit Messages

Read the format guide for detailed templates and rules:
**`.claude/skills/commit/guides/commit-message-format.md`**

Key principles:
- Order items by **decreasing importance** (impact x likelihood someone cares)
- pgxntool message includes relevant test changes (1-3 bullets)
- pgxntool-test message uses `[PGXNTOOL_COMMIT_HASH]` placeholder
- Single-repo: note "Changes only in [repo]. No related changes in [other repo]."
- Wrap code references in backticks

### 5. Present for Approval

Show proposed commit messages. Wait for user approval.
Mention any files intentionally excluded and why.
If only one repo has changes, show only that message (with note about other repo).

### 6. Verify Tests Passed (MANDATORY)

Check test subagent output for completion.
- Look for ANY "not ok" lines
- **If tests fail: STOP. Do NOT commit. Ask user what to do.**
- There is NO such thing as an "acceptable" failing test
- Do NOT rationalize failures as "pre-existing" or "unrelated"
- Only proceed if ALL tests pass

### 7. Execute Two-Phase Commit

After tests pass AND receiving user approval:

1. **Phase 1: Commit pgxntool** (if it has changes)
- Stage files: `git add` specific files (include ALL new files for the feature)
- Verify staging: `git status` (STOP if mismatch)
- Commit with approved message using HEREDOC
- Capture hash: `PGXNTOOL_HASH=$(git log -1 --format=%h)`
- Verify: `git status`

2. **Phase 2: Commit pgxntool-test** (if it has changes)
- Replace `[PGXNTOOL_COMMIT_HASH]` with captured hash
- Stage, verify, commit, verify (same pattern)

For detailed execution steps including pre-commit hook handling, read:
**`.claude/skills/commit/guides/commit-message-format.md`** -> "Two-Phase Commit Execution"

Always use HEREDOC format:
```bash
git commit -m "$(cat <<'EOF'
[message]
EOF
)"
```

## Restrictions

- DO NOT push unless explicitly asked
- DO NOT commit files with secrets (.env, credentials.json)
- Never use `-i` flags (git commit -i, git rebase -i)
Loading