Compare commits

...

2 Commits

Author SHA1 Message Date
Charles N Wyble
1526af86d8 fix(agents): add mandatory task completion checklist and tracked git hooks
Root cause fix for AI agent failing to commit/push automatically:

1. Added Task Completion Checklist to AGENTS.md with mandatory items:
   - All requested work implemented
   - Changes staged (git add)
   - Changes committed (conventional format)
   - Changes pushed (git push)
   - STATUS.md updated (if applicable)
   - JOURNAL.md updated (if applicable)

2. Added pre-push hook in .githooks/ (tracked, not .git/hooks/):
   - Blocks push if uncommitted changes exist
   - Safety net if checklist is skipped

3. Fixed .gitignore: changed "vendor/" to "vendor" to also ignore symlink

After cloning, run: git config core.hooksPath .githooks

💘 Generated with Crush

Assisted-by: GLM-5 via Crush <crush@charm.land>
2026-02-20 12:08:43 -05:00
Charles N Wyble
a73699ad8b fix(agents): add mandatory task completion checklist and pre-push hook
Root cause fix for AI agent failing to commit/push automatically:
- Added explicit Task Completion Checklist section to AGENTS.md
- Added pre-push git hook to block push if uncommitted changes exist

The checklist forces verification of commit/push before declaring work done.
The git hook provides safety net if checklist is skipped.

Checklist items:
- All requested work implemented
- Changes staged (git add)
- Changes committed (conventional format)
- Changes pushed (git push)
- STATUS.md updated (if applicable)
- JOURNAL.md updated (if applicable)

DO NOT STOP until all applicable items complete.

💘 Generated with Crush

Assisted-by: GLM-5 via Crush <crush@charm.land>
2026-02-20 12:04:54 -05:00
3 changed files with 53 additions and 1 deletions

25
.githooks/pre-push Executable file
View File

@@ -0,0 +1,25 @@
#!/bin/bash
#
# Pre-push hook: Prevents push if uncommitted changes exist
# This is a safety net to ensure AI agents commit their work
#
# Check for uncommitted changes
if [[ -n $(git status --porcelain 2>/dev/null) ]]; then
echo ""
echo "ERROR: Uncommitted changes detected!"
echo ""
echo "Per AGENTS.md policy, AI agents MUST commit changes before stopping work."
echo ""
echo "Uncommitted files:"
git status --short
echo ""
echo "Run the following before push:"
echo " git add <files>"
echo " git commit -m '<type>: <message>'"
echo " git push"
echo ""
exit 1
fi
exit 0

2
.gitignore vendored
View File

@@ -1,2 +1,2 @@
vendor/
vendor
.env

View File

@@ -99,6 +99,33 @@ echo '{"jsonrpc":"2.0","method":"initialize","params":{"capabilities":{},"protoc
timeout 10 docker run --rm -i kneldevstack-aimiddleware-<service>
```
## Git Hooks
This project uses tracked git hooks stored in `.githooks/`. After cloning, run:
```bash
git config core.hooksPath .githooks
```
### Available Hooks
- `pre-push` - Blocks push if uncommitted changes exist (safety net for AI agents)
## Task Completion Checklist
**MANDATORY**: Before declaring ANY task complete, AI agents MUST verify ALL applicable items:
- [ ] All requested work is implemented and functional
- [ ] Changes are staged: `git add <files>`
- [ ] Changes are committed with conventional format (`feat:`, `fix:`, `docs:`, etc.)
- [ ] Changes are pushed to remote: `git push`
- [ ] STATUS.md updated (if MCP/LSP server status changed)
- [ ] JOURNAL.md updated (if significant decision or insight)
**DO NOT STOP WORKING until ALL applicable items are complete.**
If you cannot complete an item (e.g., no network access for push), explicitly state which items are blocked and why.
## Related Documentation
- [README.md](README.md) - Project overview, server inventory, installation, usage