inbox-add

SkillDocs & knowledge

Read .claude/inbox-add.local.md and append one task line to the Obsidian Vault's inbox.md. Use when the user requests "add to inbox", "inboxに追加", "これをinboxに入れて", or any equivalent task-capture intent.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the inbox-add skill

What this skill tells your AI

The instructions your AI receives, as published by hiroro-work/claude-plugins in .claude/skills/inbox-add/SKILL.md and read by ahel’s review.

Append a single task line to an Obsidian Vault's inbox.md so the vault-side inbox-process skill can later route it to a project. This is a project-local skill (lives under .claude/skills/inbox-add/, not registered in .claude-plugin/marketplace.json) and is exposed globally via a ~/.claude/skills/inbox-add symlink.

The companion vault-side skill inbox-process reads #<project> as a #project-hint and dispatches the task into projects/<project>/tasks/.

Configuration

Per-repository config file:

  • Path: .claude/inbox-add.local.md (relative to the current working directory)
  • Gitignored via the project's .claude/*.local.* pattern
  • YAML frontmatter only
---
vault: ~/Sources/github.com/hiroro-work/vault
project: <project-name>
---
  • vault: absolute path (tilde ~ expansion supported) to the Obsidian Vault root. Required (no default — vault location differs per user)
  • project: project hint string. Required. Used verbatim as #<project> in the appended task line. May refer to a project that does not yet exist on the vault side; inbox-process offers to create it on dispatch

Process

  1. Read the config. Read .claude/inbox-add.local.md from the current working directory.

    • On Read error: enter § Setup mode (config missing) only when the file does not exist. For any other Read error (permission, encoding, etc.) stop with an error reporting the path — do not enter Setup mode, since the existing file would be clobbered. If the Read tool's error does not distinguish missing-vs-other reliably, default to stop-with-error
    • On success: parse YAML frontmatter and extract vault and project
    • Missing or empty vault / project: stop with an error naming the missing key, show the template above as a fix hint
    • Tilde expansion in vault:
      • Exactly ~ or starting with ~/ → replace the leading ~ with the value of $HOME (string replacement only, no shell invocation)
      • Any other use of ~ (e.g. ~user/…) is treated as a literal character with no expansion — for other-user expansion, write the absolute path explicitly

    1a. Setup mode (config missing)

    • Tell the user the config file is missing
    • Ask for vault and project values
    • Before writing: re-confirm .claude/inbox-add.local.md does not exist (defensive guard against a race where it appeared between Step 1 and here). If it now exists, abort Setup mode and report the conflict — never overwrite
    • Write a template file at .claude/inbox-add.local.md using the YAML format above
    • Report the path written and ask the user to re-issue the task-capture request
  2. Append the task line. Read <vault>/inbox.md.

    • On Read error (vault dir or inbox.md missing): stop with an error (vault setup is outside this skill's scope; do not auto-create)
    • On success: compose - [ ] <task> #<project>. If the file ends with \n, append - [ ] <task> #<project>\n; otherwise append \n- [ ] <task> #<project>\n so the new entry starts on its own line
    • Multi-line task: collapse the user-supplied content into a single line by replacing internal newlines with single spaces. If the resulting line is unwieldy, summarize the intent into one line yourself — do not ask the user to rephrase
    • Write the new content back to <vault>/inbox.md
  3. Report. Show the appended line verbatim and the absolute path of the modified inbox.md. Example:

    Appended to /Users/.../vault/inbox.md:
      - [ ] 請求書を送る #work
    

Edge cases

  • inbox.md is empty (zero-length): append - [ ] <task> #<project>\n directly (no leading newline needed)
  • project value contains a leading #: strip exactly one leading # before composing the line to avoid ##project double-hash. Two or more leading # indicate user error and are left as-is so the malformed value surfaces visibly in the appended line

Signals

GitHub stars
47
Forks
3
Last commit
Sep 2026
Advanced
Item type
skill
Key
inbox-add
Source
github.com/hiroro-work/claude-plugins