Skip to main content

accountability-beeminder

Create and settle evidence-backed accountability commitments with user-chosen BeeMinder charges. Use when a user commits to a measurable or subjective outcome, asks to be held accountable, wants a due commitment checked, answers whether a proposed miss is fair, or when a scheduled task checks accountability commitments.

Jump to install

Source facts

Repository
devinat1/skills
Last source activity
September 21, 2026 at 18:26
Detected SKILL.md language
English
Stars
1
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
6 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
accountability-beeminder
description
Create and settle evidence-backed accountability commitments with user-chosen BeeMinder charges. Use when a user commits to a measurable or subjective outcome, asks to be held accountable, wants a due commitment checked, answers whether a proposed miss is fair, or when a scheduled task checks accountability commitments.
# Accountability BeeMinder Keep the workflow generic. Domain-specific tasks supply their own evidence source and verification rule; this skill owns commitment intake, the JSON ledger, fairness confirmation, and charging. Use `scripts/accountability.py` for every ledger transition. Its default ledger is `~/.agentic/state/accountability-beeminder.json`, a standard JSON file. Executable helpers honor `AGENTIC_HOME` when set. ## Create a commitment 1. Gather, one question at a time when missing: - exact outcome; - timezone-aware due date and time; - charge amount in USD (minimum $1); - objective evidence source and pass rule, or subjective evidence the model should assess. 2. Restate the binding terms and ask for explicit confirmation. 3. After confirmation, run: ```bash python3 scripts/accountability.py add \ --goal "<outcome>" \ --due "<ISO-8601 with offset>" \ --amount "<USD>" \ --verifier-type objective \ --verification "<source and exact pass rule>" ``` Use `--verifier-type subjective` when machine evidence cannot decide completion. Never store credentials in the goal, rule, evidence, or ledger. 4. After `add` returns the commitment ID, create exactly one active, one-shot Codex heartbeat with `automation_update` for five minutes after its timezone-aware deadline. Name it with the commitment ID. Its prompt must tell the future task to: - run `accountability.py due`, then inspect only that commitment; - collect evidence using its original verification rule; - record `complete` or `miss` as supported by that evidence; - on a miss, show the evidence and ask the fairness question; and - never run `charge.py` or manufacture fairness confirmation. If scheduling fails, report that the commitment was recorded without a follow-up; do not imply that a check exists. ## Check due commitments 1. Run `python3 scripts/accountability.py due`. 2. Collect the evidence named by each commitment without changing its rule after the deadline. 3. For a completed commitment, run: ```bash python3 scripts/accountability.py complete --id <id> --evidence "<concise evidence>" ``` 4. When evidence supports a miss, run: ```bash python3 scripts/accountability.py miss --id <id> --evidence "<concise evidence>" ``` 5. Show the evidence and ask exactly one decision: “Is that fair? If yes, I will charge $X.” Treat unavailable or ambiguous evidence as unknown: leave the commitment pending and report the limitation. Never infer consent from silence. ## Resolve the fairness decision - If the user says the miss is fair, run `python3 scripts/charge.py --id <id> --fair-confirmed`. This creates the configured charge using `BEEMINDER_AUTH_TOKEN` and `BEEMINDER_USERNAME`. - If the user says it is not fair, record their reason with `python3 scripts/accountability.py dispute --id <id> --reason "<reason>"` and do not charge. - Use `--dry-run` with `charge.py` to validate credentials and the request without changing the ledger or charging. Charging is two-phase: the helper records `charging` before calling BeeMinder, then records `charged` with the returned charge ID. A commitment left in `charging` requires manual reconciliation; never retry it automatically. This favors a missed charge over a duplicate charge. ## Hard rules - Require explicit binding confirmation before `add` and explicit fairness confirmation before a real `charge`. - Charge at most once per commitment ID. - Use only `BEEMINDER_AUTH_TOKEN` for the secret and never print it. - Preserve the original commitment, deadline, amount, and verification rule after creation. - Scheduled checks may gather evidence and request fairness confirmation; they may not manufacture that confirmation. - Scheduled checks may run `accountability.py`; reserve `charge.py` for an interactive turn after confirmation. ## Automatic Jev check When a due **subjective** commitment has its original rule and collected evidence, first make the ordinary evidence judgment, then send only `commitment-rule` and `evidence` (stable IDs) after reading the existing `typesafe-ai` skill and its current API documentation. Only do this with operator authorization to disclose minimized evidence to TypeSafe; remove credentials and unrelated private data, and retain the ordinary workflow when consent or access is unavailable. Ask one Noul: `evidence satisfies the complete completion rule`; high means the supplied evidence meets every stated condition, not that missing evidence proves a miss. Use the advisory result only to prompt inspection of the rule/evidence; record `complete` or `miss` only when the original workflow supports it. Ambiguous, unavailable, or disagreeing Jev results fall back to the ordinary evidence review; leave the commitment pending only when that review has insufficient evidence under its original unknown-evidence path. Jev never replaces binding or fairness confirmation and never authorizes a charge.
View on GitHub