Passdown intake
Skill vunm-io/passdown/plugins/passdown/skills/passdown-intake
Shift-handover workflow for AI coding agents — capture ideas into an inbox, dispatch tasks to the cheapest capable executor (any CLI agent or subagent), and hand work down between sessions, agents, and tools. Composes with superpowers and OpenSpec.
npx -y skills add vunm-io/passdown --skill passdown-intakeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when processing captured notes/ideas from an inbox into actionable work — scans inbox notes, clarifies intent with the user, routes each note to its target repo, creates a planning artifact (e.g. an OpenSpec change), and marks the note processed
SKILL.md
4.9 KB, as published. Nobody here has run it
Passdown Intake
Turn raw captured notes into properly planned work. Weak capture tools (chat apps, quick notes) only need to drop a markdown file into an inbox; this skill is where a capable agent applies judgment.
Configuration (read first)
Build the effective passdown configuration root-to-nearest:
- Start with every applicable
AGENTS.mdfrom the workspace/repository root down to the current directory. - If a thin
AGENTS.mdexplicitly points to a parent file outside the Git root, read that parent too. - Merge
## passdownkeys from root to nearest; a nearer value overrides only the same key and inherits all omitted keys. - Resolve relative config paths against the directory containing the
AGENTS.mdthat declared that value, not against an arbitrary current directory.
The effective configuration should contain:
## passdown
- inbox: <path to inbox directory>
- planning: markdown | openspec
- plan_dir: <path for markdown plans> # required when planning: markdown
- targets: <repo1>, <repo2>, ... # known target repos for routing
If a required key is still missing, ask the user for that value and suggest
adding it to the appropriate AGENTS.md.
Inbox note contract
Notes are markdown files with minimal frontmatter. Never demand more structure from capture tools than this:
---
status: new # new | processed | discarded
target: unknown # target repo if the author could guess it
---
# <idea / thing to do>
<free-form content>
A malformed note is still a valid note — it is raw material, not an artifact.
Process
- Scan the inbox for notes with
status: new(treat missing frontmatter asnew). List them briefly for the user. - For each note, in order:
- Read it fully. Cross-check existing knowledge/specs in the workspace if relevant.
- If intent is unclear, ask the user — one question at a time.
- Before writing, resolve the inbox, target repo, planning directory, and schema paths. Verify that the current host has read access to inputs and write access to every intended output. Cross-repo work often needs the parent workspace opened as a workspace root or an explicit permission grant.
- If sandbox, permission, or network policy blocks a required path, stop and
report the blocked path and operation. Do not redirect
HOME, create substitute caches, or edit project/tool configuration as a workaround. - Decide the disposition:
- Actionable work → determine the target repo (use
target:hint, the routing rules in AGENTS.md, or ask). Create the planning artifact in the target repo using the workspace's planning convention. Forplanning: markdown, create a plan file in the target repo'splan_dirfollowing the structure of passdown'stemplates/plan.md: every task carries a[dispatch: external-ok]or[dispatch: main]tag plus Paths, Done criteria, and Verification. Forplanning: openspec, use the portableopenspec new changeCLI path; a host-specific command such as/opsx:proposemay be used only when that host actually provides it. Either way the artifact must be self-contained: an executor must be able to work from it without reading this conversation. - Knowledge, not work → refile into the workspace's knowledge location per its conventions.
- Obsolete/noise → mark
status: discardedafter confirming with the user.
- Actionable work → determine the target repo (use
- Close the loop: update the note's frontmatter to
status: processedand append a link to the created change/refiled location. The note stays where it is — it becomes the permanent record of where the idea came from.
Rules
- The inbox repo stores material and provenance; it never hosts task execution. Planning artifacts always live in the target repo.
- Custom OpenSpec schemas (e.g.
openspec new change --schema passdown) must exist as a real directory —openspec/schemas/<name>/in the target repo, or user-level~/.local/share/openspec/schemas/<name>/. Symlinked schema directories fail with "Unknown schema" (openspec CLI 1.5.0). If the schema is missing and the target repo is writable, prefer the repo-local copy from its source repo before creating the change (for passdown:install.sh --into <target-repo>). A user-level install writes outside the project and may require explicit approval. - A discussion note is not an implementation request. Intake produces plans, never code changes.
- Do not batch-guess: when a note's disposition is ambiguous, ask.