Initialize the docs/agent-todos folder structure
Set up the agent todos configuration for this project. Creates .agent-todos.local.json in the project root and initializes the todo store directory.
The default todo store is docs/agent-todos/ inside the project. Users with Obsidian can point todosRoot to a vault path instead.
Read .agent-todos.local.json in the project root, if it exists.
If a config file is found, show the current settings and ask the user whether to reconfigure or abort.
Upgrade path — missing projectName: If the existing config is kept (user chooses not to reconfigure) but projectName is absent, ask: "Would you like to add a projectName to your config? This value is included in the projects: frontmatter of every new todo (e.g. [[my-project]])." If yes, ask for the value and write it to the config file.
Upgrade path — missing CLAUDE.md section: If the existing config is kept but no ## Agent Todos section exists in CLAUDE.md, proceed to Step 6 to add it.
Ask the user where to store todos:
docs/agent-todos/ inside the project (works everywhere, no external tools needed)Use AskUserQuestion to let the user choose.
After the todo store path is set, ask the user whether they want to associate todos with a project name:
Would you like to add a
projectNameto tag every new todo? This is included in theprojects:frontmatter field (e.g.[[my-project]]for Obsidian task-notes integration). Leave blank to skip.
This field is optional. If the user provides a value, include it in the config.
Create .agent-todos.local.json in the project root:
{
"todosRoot": "<todos_root>"
}
If the user provided a projectName, include it:
{
"todosRoot": "<todos_root>",
"projectName": "<project_name>"
}
All paths should use ~ for the home directory when applicable.
Create the todosRoot directory if it does not already exist:
mkdir -p "<todos_root>"
Ask the user which category subdirectories to create (multi-select). Suggest common ones:
misc/ — Miscellaneous tasksdata/ — Data-related taskscontent/ — Content creation and editing tasksCreate the selected subdirectories inside todosRoot.
Check whether a CLAUDE.md file exists in the project root and whether it already contains an ## Agent Todos section:
grep -q "## Agent Todos" CLAUDE.md 2>/dev/null && echo "exists" || echo "missing"
If the section is missing, append the following reference block to CLAUDE.md. Replace <todosRoot> with the actual configured path:
## Agent Todos
This project uses the **agent-todos** plugin to manage tasks as structured Markdown files.
**IMPORTANT:** Always read `.agent-todos.local.json` before any todo operation. It defines `todosRoot` — the actual directory where todo files are stored. Do not fall back to `docs/agent-todos/` when this file is present.
**Current todo store:** `<todosRoot>`
**Skills:**
- `/todo-creation [category] [title]` — create a new todo file
- `/todo-processing [category/number]` — pick up and work on a todo
- `/todo-gh-issue-import [category]` — import GitHub issues as todos
- `/todo-moving` — renumber or move todos between categories
If CLAUDE.md does not exist, create it with only this section.
If the section already exists, skip this step.
.agent-todos.local.json is project-specific and should be added to .gitignore when todosRoot points outside the projecttodosRoot is inside the project (e.g. docs/agent-todos), it can be checked in/todo-creation, /todo-processing, etc.) read this config automatically/todo-init or edit .agent-todos.local.json directly.agent-todos.local.json, all skills fall back to docs/agent-todos/ in the project rootSearch for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer