# Today

> Morning heartbeat — staleness checks, deadline surfacing, and memory curation for your workspace state. Run at the start of each day or after a 12+ hour gap.

- **Type:** Skill
- **Install:** `agentstack add skill-conorbronsdon-agent-workspace-today`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [conorbronsdon](https://agentstack.voostack.com/s/conorbronsdon)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [conorbronsdon](https://github.com/conorbronsdon)
- **Source:** https://github.com/conorbronsdon/agent-workspace/tree/main/skills/today
- **Website:** https://conorbronsdon.com/go/agent-workspace

## Install

```sh
agentstack add skill-conorbronsdon-agent-workspace-today
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# /today — Morning Heartbeat

A daily check-in that catches staleness, surfaces deadlines, and proposes updates —
including gaps left by sessions that closed without `/end`. Designed to run in under 60
seconds.

**Invocation:** user-only (`disable-model-invocation: true`) — the heartbeat is timed by
you (mornings, or after a gap), and the flag keeps this skill out of ambient context.

## Configuration

Read the optional `workspace.yaml` at the project root. Below, ``,
``, and `` are its resolved values; defaults are `state/`,
`sessions/`, and `TODO.md`. Staleness thresholds come from `staleness.current_days` (3),
`weekly_days` (5), `blockers_days` (7). Full reference: `docs/state-model.md`.

## Instructions

1. **Establish context.** Get today's date. Read `/heartbeat-log.md` to find the
   last check-in date.

2. **Scan recent activity.** In a git repository, run:
   ```bash
   git log --oneline --since="3 days ago"
   ```
   Then check `` for recent logs. This captures work even from sessions that
   closed without `/end`. Outside a git repository, rely on the session logs alone.

3. **Check state freshness.** Same thresholds as `start` step 4 (`staleness.*` from config).

4. **Surface deadlines.** Read `` and scan for:
   - Items with dates in the next 7 days
   - Items marked urgent or time-sensitive

5. **Age-check open items.** Read `/current.md` and check the `*(created M/D)*`
   dates on open threads:
   - Items >7 days old: flag as "stale — still relevant?"
   - Items >14 days old: escalate as "likely stale — remove or convert to task?"
   Present proposals. **Do not auto-update.**

6. **Identify memory gaps.** Compare git-log activity against state files:
   - Decisions committed but not in `/decisions.md`?
   - Completed work not reflected in `/current.md`?
   List proposed updates. **Do not auto-update. Wait for approval.**

7. **Output format:**
   ```
   MORNING CHECK-IN — [DATE] ([day of week])
   Last heartbeat: [date] ([N] days ago)

   SINCE LAST CHECK-IN:
   - [N] commits: [brief themes]
   - Session logs: [found/none]

   STATE:
   - current.md — [fresh/N days stale]
   - weekly-priorities.md — [fresh/N days stale]
   - blockers.md — [fresh/N days stale]

   DEADLINES (next 7 days):
   - [items, most urgent first]

   [If stale items found:]
   STALE ITEMS:
   - [item] — [N] days old. [Propose: remove / convert to task]

   [If memory gaps found:]
   MEMORY GAPS:
   - [proposed update]
   ```

8. **Log the heartbeat.** Append to `/heartbeat-log.md`:
   ```markdown
   ## [DATE]
   - Commits since last: [N]
   - State staleness: [summary]
   - Deadlines flagged: [count]
   - Stale items flagged: [count]
   - Memory gaps found: [count]
   - Updates applied: [list or "none — awaiting response"]
   ```

9. **Transition.** Ask: "What's the focus today?"

## Design principles

- **Fast.** Under 60 seconds. If it's slow, it won't get used.
- **Propose, don't act.** Never silently edit state or write memory during the heartbeat.
- **Skip what's clean.** All fresh and no near deadlines → say so in one line.
- **Graceful degradation.** A session that closed without `/end` is caught here; missing
  files are noted, not fatal.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [conorbronsdon](https://github.com/conorbronsdon)
- **Source:** [conorbronsdon/agent-workspace](https://github.com/conorbronsdon/agent-workspace)
- **License:** MIT
- **Homepage:** https://conorbronsdon.com/go/agent-workspace

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-conorbronsdon-agent-workspace-today
- Seller: https://agentstack.voostack.com/s/conorbronsdon
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
