docs blog library
github

Build a Goggins accountability agent

Create an accountability coach that helps you turn a goal into a measurable commitment, checks your progress, and identifies the next action. You will use the same persona for terminal check-ins, scripted updates, and scheduled reviews.

Before starting, install Jazz and configure a model provider.

1. Create the persona

Create a directory for the persona:

mkdir -p ~/.jazz/personas/goggins

Save this template as ~/.jazz/personas/goggins/PERSONA.md:

---
name: goggins
description: A direct accountability coach who turns goals into measurable commitments.
---

# Goggins

You are {agentName}, a demanding but constructive accountability coach.

{agentDescription}

{environment}

## Always

- Speak directly and keep check-ins short.
- Restate the commitment and its deadline before assessing progress.
- Separate completed work from explanations. Ask for concrete evidence when a claim is vague.
- Reduce an oversized plan to an action the user can start now.
- End each check-in with an action, a measurable result, and a time.
- Acknowledge completed work briefly before choosing the next step.

## Never

- Never insult, humiliate, diagnose, or use shame as motivation.
- Never pretend to be David Goggins or borrow his biography or catchphrases.
- Never invent progress, prior commitments, or evidence.
- Never replace a specific next action with a motivational speech.

## Judgment

- Compare progress with the user's stated commitment, not an invented standard.
- If prior context is missing, ask for the commitment and deadline before judging progress.
- When a real constraint changes the plan, agree on a smaller deliverable or a new deadline.

## Calibration

User: “I skipped yesterday and feel like giving up.”

Coach: “One missed day doesn't decide today. What can you finish in the next 20 minutes?”

User: “I need to ship onboarding by Friday, but I've only written the copy.”

Coach: “The copy is done; implementation is still open. Build the first section today.
What time will you have a working preview to show?”

Jazz discovers the file automatically. {agentName} and {agentDescription} come from the agent you attach it to; {environment} supplies the current machine and date. If you use a custom JAZZ_HOME, put the file under that directory’s personas/goggins/ instead.

Confirm what Jazz stored:

jazz persona show goggins

2. Attach it to an agent

Run the agent wizard:

jazz agent create

Name the agent accountability, select any configured provider and model, and choose goggins as its persona. You can leave external integrations unselected for these check-ins.

Test it in the foreground:

jazz agent chat accountability

Try:

I want to ship the onboarding page by Friday. I have not broken down the work yet.

The coach should help you choose a deliverable and a deadline for the next step. Refine its behavior with jazz persona edit goggins, then try another check-in.

3. Use one conversation from a script

A stable conversation ID gives repeated check-ins continuity across separate processes:

jazz run --agent accountability \
  --conversation weekly-accountability \
  --json \
  "Monday check-in: my outcome for this week is to ship onboarding by Friday."

Run the same command later with a progress update and the same conversation ID:

jazz run --agent accountability \
  --conversation weekly-accountability \
  --json \
  "Thursday check-in: the copy is done, but the implementation has not started."

Jazz restores that conversation instead of treating Thursday as a new coaching relationship. --json provides a single machine-readable result for a shell script or application.

4. Move the behavior to another model

Create a second agent and select the same goggins persona. For example, use OpenRouter for a hosted check-in agent and Ollama for a private local one. This reuses the same instructions while model credentials, context size, and tools remain isolated per agent. Compare the outputs before relying on equivalent behavior: models can follow the persona with different levels of fidelity.

jazz agent create
jazz agent chat accountability-local

5. Schedule an evidence-based review

An unattended agent cannot ask you what happened and expect an immediate answer. Give it evidence instead. In a project, create ACCOUNTABILITY.md:

# Current commitment

- Outcome: Ship the onboarding page
- Deadline: Friday 17:00
- Proof: merged pull request and deployed URL
- Next action: implement the first page section

Then create workflows/accountability-review/WORKFLOW.md:

---
name: accountability-review
description: "Check the current commitment against repository evidence"
schedule: "0 18 * * 1-5"
agent: accountability
autoApprove: read-only
maxIterations: 20
maxDurationMs: 300000
---

# Accountability review

Read `ACCOUNTABILITY.md`. Inspect read-only repository evidence such as `git status`,
`git log`, and relevant files. Do not modify the repository.

Report:

1. the stated outcome and deadline;
2. evidence of completed work;
3. the gap between the commitment and the evidence;
4. the smallest concrete next action.

Do not infer progress that the evidence does not support.

Run the exact unattended policy once in the foreground, then install the schedule:

jazz workflow run accountability-review --auto-approve
jazz workflow schedule accountability-review
jazz workflow scheduled

The weekday review runs at 18:00 and writes to Jazz’s workflow logs and history. A scheduled run has nobody at the terminal, so read-only deliberately refuses mutation. Read Scheduled runs and unattended-run security before granting more capability.

Next, read Personas, Agents, and Headless runs.

machine-readable: /docs/guides/goggins-accountability-agent.md · /llms.txt · /llms-full.txt