skills/backlog/SKILL.md
Lightweight project backlog workflow. Use when starting a project, creating or maintaining a `.backlog/` folder, capturing inbox ideas, promoting work to GitHub Issues, refining work into PRDs, planning implementation, or keeping project task memory current without a larger agent framework.
npx skillsauth add miguelalcalde/agentfiles backlogInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use this skill to manage lightweight project memory in .backlog/.
The goal is useful continuity, not process ceremony. Create only the artifacts that reduce ambiguity for the current task.
When the user asks to initialize or use the backlog workflow, first check whether
.backlog/ exists. If it does not exist and the user is starting a project or
explicitly asks to initialize the backlog, create:
.backlog/
inbox.md
issues.md
prds/
plans/
memory.md
Use these roles:
.backlog/inbox.md: raw ideas, bugs, chores, and nitpicks not yet promoted
to GitHub Issues..backlog/issues.md: generated, read-only mirror of GitHub Issues..backlog/prds/PRD-[slug].md: temporary drafting artifact for large or
ambiguous work before it is promoted to GitHub. After promotion, delete it or
replace it with a tiny pointer only if the user wants local traceability..backlog/plans/PLAN-[slug].md: implementation sequencing for non-trivial
changes..backlog/memory.md: durable decisions, conventions, blockers, gotchas, and
context future agents should remember.GitHub Issues are canonical for any promoted task. If an item has a GitHub
Issue, GitHub owns its title, body, status, labels, discussion, and assignment.
Do not keep a second editable copy of the same promoted artifact in .backlog/.
Local PRDs are drafting buffers before promotion; local plans are execution
notes when implementation needs sequencing.
Create .backlog/inbox.md with:
# Backlog Inbox
Raw ideas not yet promoted to GitHub Issues.
## Inbox
Create .backlog/issues.md with:
<!-- GENERATED FROM GITHUB ISSUES. DO NOT EDIT DIRECTLY. -->
# GitHub Issues
Regenerate this file from GitHub Issues when sync tooling exists.
Create .backlog/memory.md with:
# Backlog Memory
## Decisions
## Blockers
## Project Conventions
## Gotchas
Keep prds/ and plans/ empty until they are needed.
Use compact inbox items:
- [ ] [type] [priority] **Title**. Short description.
Allowed types:
feat: new user-facing capabilityfix: broken or incorrect behaviornit: small polish, copy, cleanup, tiny UX adjustment, or low-risk
refinementAllowed priorities:
highmediumlowExample:
- [ ] [fix] [high] **Repair login redirect**. Users return to the wrong page after sign-in.
When an inbox item is promoted, remove it from .backlog/inbox.md or replace it
with a short link to the GitHub Issue. Do not track promoted status in the inbox.
Use a slug when a task gets a PRD, plan, branch, or issue link.
Rules:
a-z, 0-9, and -.backlog/prds/ and .backlog/plans/Examples:
Repair login redirect -> login-redirectDashboard analytics -> dashboard-analyticsWhen the user shares an idea, bug, nitpick, or task:
.backlog/ exists if the user wants the backlog workflow active.## Inbox in
.backlog/inbox.md.Do not add manually maintained task lists to .backlog/issues.md.
When promoting local work to GitHub Issues:
.backlog/issues.md if the project has sync tooling.Pointer file example:
---
slug: [slug]
status: promoted
issue: [GitHub issue URL]
promoted_at: [ISO-8601 timestamp]
---
Canonical artifact lives in GitHub Issue #[number].
Use this GitHub label framework:
type:feat, type:fix, type:nitpriority:high, priority:medium, priority:lowstatus:unknown, status:ready, status:blockedUse exactly one type:* label:
type:feat: new behavior, capability, surface area, or supported workflow.type:fix: broken, incorrect, confusing, or regressed behavior.type:nit: small polish, copy, cleanup, tiny UX adjustment, or low-risk
refinement.Use at most one priority:* label:
priority:high: important soon, blocks other work, or meaningfully affects
core UX.priority:medium: valuable, but not urgent or blocking.priority:low: nice-to-have, opportunistic, or exploratory.Use exactly one status:* label for promoted open issues:
status:unknown: default promoted state. Needs clarification, research,
scoping, or acceptance criteria.status:ready: clear enough to implement without unresolved product
decisions.status:blocked: cannot proceed until a decision or dependency is resolved.
Link the blocking issue or decision in the issue body or a comment.When choosing what to work on:
high, then medium, then low.Create a PRD only when the task benefits from product-level clarification:
Skip the PRD for obvious fixes, small chores, and nitpicks.
PRD path:
.backlog/prds/PRD-[slug].md
PRD template:
---
slug: [slug]
title: [title]
status: draft
issue: [GitHub issue URL or blank]
created_at: [ISO-8601 timestamp]
---
# [Title]
## Problem
## Goal
## Requirements
## Acceptance Criteria
- [ ]
## Out of Scope
## Open Questions
Use statuses:
draft: useful but still being shapedready: clear enough to plan or implementblocked: needs a human decision or external dependencydone: implemented or no longer neededCreate a plan only when implementation needs sequencing:
Plan path:
.backlog/plans/PLAN-[slug].md
Plan template:
---
slug: [slug]
status: draft
issue: [GitHub issue URL or blank]
prd: [PRD path or blank]
created_at: [ISO-8601 timestamp]
---
# Plan: [Title]
## Summary
## Tasks
- [ ] [Task with file paths and verification]
## Verification
## Risks
## Notes
Use statuses:
draft: being plannedready: clear enough to executein_progress: currently being implementedblocked: cannot continue without inputdone: implemented and verifiedWhen implementing from the backlog:
.backlog/memory.md.Do not create PRDs or plans retroactively unless they would help future work.
Use GitHub Issues as the source of truth for promoted work:
.backlog/inbox.md: local ideas not yet promoted..backlog/issues.md: generated metadata snapshot for local visibility.When linking them, include issue URLs in the PRD or plan frontmatter. Prefer
GitHub closing keywords such as Closes #123 in pull requests.
When a project wants GitHub sync, use this skill's
scripts/backlog-sync.mjs helper. It requires Node.js and the GitHub CLI, but
no npm dependencies. Run it from the downstream project root, either directly
from the installed skill path or copied into the project as
scripts/backlog-sync.mjs.
Default usage:
node scripts/backlog-sync.mjs
The helper discovers the GitHub repository from
git config --get remote.origin.url, writes .backlog/issues.md, and defaults
to all issues with a limit of 1000. Override defaults with flags:
node scripts/backlog-sync.mjs --repo owner/repo --output .backlog/issues.md --state all --limit 1000
The helper rewrites .backlog/issues.md; do not manually edit generated issue
content.
Avoid two-way sync unless the user explicitly asks for it. It needs stable IDs, conflict handling, deletion behavior, label mapping, and rules for edits from multiple actors.
If an existing project has .backlog/backlog.md, treat it as a legacy local
backlog:
.backlog/inbox.md..backlog/issues.md..backlog/backlog.md once GitHub Issues are canonical..backlog/issues.md as generated and read-only..backlog/, read the relevant existing files.tools
Todoist API v1 integration reference. Use when building or operating code, tools, scripts, or agents that call Todoist directly over HTTP for tasks, projects, sections, labels, comments, reminders, filters, completed-task history, sync, or Quick Add. Prefer this for API mechanics, endpoint shapes, authentication, pagination, and migration caveats; keep product workflow and task-management preferences in the calling agent's own instructions.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.
development
Run, watch, debug, and extend OpenClaw QA testing with qa-lab and qa-channel. Use when Codex needs to execute the repo-backed QA suite, inspect live QA artifacts, debug failing scenarios, add new QA scenarios, or explain the OpenClaw QA workflow. Prefer the live OpenAI lane with regular openai/gpt-5.4 in fast mode; do not use gpt-5.4-pro or gpt-5.4-mini unless the user explicitly overrides that policy.