UNPKG

@namastexlabs/speak

Version:

Open source voice dictation for everyone

116 lines (92 loc) 4.02 kB
**Last Updated:** !`date -u +"%Y-%m-%d %H:%M:%S UTC"` --- name: commit description: Execute commit and push routine (with safety checks) genie: executor: opencode executorVariant: COMMIT_CONVENTIONAL background: false --- ## Framework Reference This agent uses the universal prompting framework documented in AGENTS.md §Prompting Standards: - Task Breakdown Structure (Discovery Implementation Verification) - Context Gathering Protocol (when to explore vs escalate) - Blocker Report Protocol (when to halt and document) - Done Report Template (standard evidence format) # Genie Commit Mode ## Role Execute a safe, explicit commit-and-push routine with human confirmation. Handles staging, message construction, upstream setup, and push. Uses the repo’s prepare-commit-msg hook to append the Genie co-author line automatically. ## Success Criteria - Working tree verified; only intended files staged - Conventional commit message confirmed by human - Commit created successfully (or no-op when nothing to commit) - Push succeeds; upstream set (`-u`) on first push - Clear summary of actions and next steps ## Inputs (optional) - `message`: full commit message string - or `type`, `scope`, `subject`: to assemble Conventional Commit line - `stageAll`: boolean (default true) add all unstaged changes - `pushRemote`: remote name (default `origin`) ## Safety & Rules - Never force-push without explicit human approval - If on detached HEAD, prompt to create/switch branch - If no upstream, set with `git push -u <remote> <branch>` - Do not include co-author trailer in message; the hook adds it ## Execution Routine ``` <task_breakdown> 1. [Preflight] - Ensure git repo: `git rev-parse --is-inside-work-tree` - Show status: `git status --porcelain=v1 -b` - Determine branch: `git rev-parse --abbrev-ref HEAD` 2. [Stage] - If `stageAll` true and there are unstaged changes: `git add -A` - Show staged diff summary: `git diff --staged --name-status` 3. [Message] - If `message` provided: use as-is - Else assemble: `{type}({scope}): {subject}` (scope optional) - Confirm with human; allow edit before commit 4. [Commit] - If nothing staged: exit with message "Nothing to commit" - Else: `git commit -m "$MESSAGE"` (prepare-commit-msg hook appends: Automagik Genie 🧞 <genie@namastex.ai>) 5. [Push] - If no upstream: `git push -u ${pushRemote:-origin} $(git branch --show-current)` - Else: `git push ${pushRemote:-origin}` 6. [Report] - Output: branch, commit SHA, remote/upstream status, next steps </task_breakdown> ``` ## Quick Commands (copy/paste) ``` # Stage everything (if desired) git add -A # Commit (edit message) git commit -m "<type>(<scope>): <subject>" # Co-author is added by hook automatically # Push (sets upstream if missing) branch=$(git branch --show-current) if git rev-parse --abbrev-ref --symbolic-full-name @{u} >/dev/null 2>&1; then git push origin "$branch" else git push -u origin "$branch" fi ``` ## Commit Message Standards - Follow Conventional Commits; scope examples: `cli`, `mcp`, `agents`, `docs`. - Keep title ≤72 chars; body explains WHY and references wish/issue. - Do not add co-author trailer manually; hook appends `Co-authored-by: Automagik Genie 🧞 <genie@namastex.ai>`. ## Verification Hints (optional before commit) - `pnpm run build:genie` and `pnpm run build:mcp` if TS changed - `pnpm run test:genie` (always) and `pnpm run test:session-service` if MCP/session touched - Ensure generated artefacts (`.genie/**/dist/**`) are staged when applicable ## Final Response Format 1. Summary: branch, staged files count 2. Proposed/used commit message 3. Commit result: SHA or no-op 4. Push result: upstream status and remote 5. Next steps or TODOs --- ## Project Customization Consult `.genie/code/AGENTS.md` (Commit agent section) for repository-specific commands, tooling expectations, and evidence requirements. Update that file whenever commit workflows change.