working-on

$npx mdskill add posit-dev/skills/working-on

Maintains a tracking document as the source of truth for a task.

  • Provides a persistent record of decisions, discoveries, and progress.
  • Depends on a user-specified file path for the tracking document.
  • Updates the document after decisions, discoveries, commits, or plans.
  • Returns the updated document content as the persistent record.

SKILL.md

.github/skills/working-onView on GitHub ↗
---
name: working-on
description: "Set a tracking document as the source of truth for the current feature or task. Use when starting work on a feature, bug fix, or multi-step task that benefits from a persistent record of decisions, discoveries, and progress. Keeps the document updated as work proceeds."
disable-model-invocation: true
arguments: [path]
argument-hint: "[path-to-tracking-doc] [additional instructions]"
metadata:
  author: Garrick Aden-Buie (@gadenbuie)
  version: "1.1"
license: MIT
---

# Working On

You are managing a tracking document that serves as the source of truth for the current task or feature.

The tracking document is: `$path`

## Behavior

Once activated, treat the tracking document as a living record. Update it after:

- Any decision is made (architectural, design, scope, naming, etc.)
- A new problem, bug, or edge case is discovered
- A new sub-feature or requirement emerges
- An issue is raised or resolved
- Any significant implementation work is completed
- A key part of a conversation with the user that would be useful to recall later
- Any time you commit files — a commit is a strong signal that the tracking document should also be reviewed and updated
- Any plan you form — write it to the document rather than presenting it only in chat; the document is the persistent record

If in doubt, update the document. It is better to over-document than to lose context.

## Git Handling

Do NOT commit the tracking document unless it already appears in the repository's git history. If the file is not tracked by git, leave it out of any commits.

## Guidelines

- Keep updates concise — bullet points and short paragraphs are preferred over prose
- Use timestamps or date headers when the document spans multiple sessions
- Record the *why* behind decisions, not just the *what*
- When a section becomes stale or irrelevant, move it to an "Archive" or "Resolved" section rather than deleting it
- If the document doesn't exist yet, create it with a sensible structure based on the task at hand

More from posit-dev/skills

SkillDescription
alt-text>
brand-ymlCreate and use brand.yml files for consistent branding across Shiny apps and Quarto documents. Covers: (1) Creating new _brand.yml files, (2) Applying to Shiny (R and Python), (3) Using in Quarto, (4) Modifying existing files, and (5) Troubleshooting. Includes complete specifications and integration guides.
cli>
cran-extrachecks>
create-release-checklist>
critical-code-reviewerConduct rigorous, adversarial code reviews with zero tolerance for mediocrity. Use when users ask to "critically review" my code or a PR, "critique my code", "find issues in my code", or "what's wrong with this code". Identifies security holes, lazy patterns, edge case failures, and bad practices across Python, R, JavaScript/TypeScript, SQL, and front-end code. Scrutinizes error handling, type safety, performance, accessibility, and code quality. Provides structured feedback with severity tiers (Blocking, Required, Suggestions) and specific, actionable recommendations.
describe-designResearch a codebase and create architectural documentation describing how features or systems work. Use when the user asks to: (1) Document how a feature works, (2) Create an architecture overview, (3) Explain code structure for onboarding or knowledge transfer, (4) Research and describe a system's design. Produces markdown documents with Mermaid diagrams and stable code references suitable for humans and AI agents.
ggsqlWrite ggsql queries — a grammar of graphics for SQL. Use when the user wants to create, modify, or understand a ggsql visualization query.
implementOrchestrates implementation of a plan file by delegating work to subagents in parallel. Verifies git branch state, tracks progress, and ensures high-quality implementation. Invoke with a plan file path and optional model override: /implement plans/my-plan.md [--model sonnet]
lifecycleGuidance for managing R package lifecycle according to tidyverse principles using the lifecycle package. Use when: (1) Setting up lifecycle infrastructure in a package, (2) Deprecating functions or arguments, (3) Renaming functions or arguments, (4) Superseding functions, (5) Marking functions as experimental, (6) Understanding lifecycle stages (stable, experimental, deprecated, superseded), or (7) Writing deprecation helpers for complex scenarios.