| name | smith-bank |
| description | Captures ideas mid-conversation and stores them in the vault for later processing. Use when the user wants to save an idea, park a thought, or come back to something later. Supports listing, processing, editing, and prioritizing banked ideas. |
| argument-hint | [list|process|edit|remove|prioritize] [<id>] [--priority <level>] [--system <id>] |
Smith Idea Bank
Capture ideas mid-conversation and store them in the vault for later processing. The bank is a section of the vault where ideas get deposited for safekeeping until you're ready to withdraw them.
Arguments: $ARGUMENTS
Vault Logging
Log significant events to the vault session log. Read the session log path from .smith/vault/.current-session. If missing, skip logging silently.
Append entries using this format:
### [HH:MM:SS] /smith-bank <event>
**User Request:**
> <verbatim user message or idea description that triggered this action>
**Action:** <banked|listed|processed|edited|removed|prioritized>
**Bank ID:** <BANK-NNN>
**Title:** <idea title>
**Outcome:** <what happened>
**Systems affected:** <system IDs>
Behavior
No Arguments — Bank an Idea
When invoked with no arguments (or via natural language trigger), capture the current conversation's idea:
- Analyze the conversation to understand the idea being banked — what it is, how it came up, what problem it solves, and any initial requirements discussed
- Auto-detect systems the idea would likely impact by scanning
.specify/systems/system-*/spec.md descriptions against the idea content. Set primary_system and also_affects.
- Determine next bank ID by scanning
.smith/vault/bank/ for existing files. Extract the highest BANK-NNN from frontmatter id: fields, then increment. Start at BANK-001 if none exist.
- Generate the bank file at
.smith/vault/bank/YYYY-MM-DD_HHMMSS-<slug>.md with this format:
---
id: BANK-NNN
title: "<concise title>"
created: "YYYY-MM-DDTHH:MM:SS"
source_session: "<current session log filename>"
primary_system: "<detected system or 'unassigned'>"
also_affects: []
status: banked
priority: medium
---
<2-3 sentences describing the conversation context that led to this idea — what were we working on, what triggered the thought, why it seemed worth saving>
<Clear description of the feature or improvement, written with enough detail that someone reading this cold could understand what to build>
<Bullet points capturing any requirements that were discussed, even loosely. Include edge cases or constraints mentioned>
- **Primary:** <system name and why>
- **Also affects:** <other systems and why, or "none identified">
<Any obvious questions that would need answering before this could be built. Pre-populate with the most important unknowns based on the conversation>
Session: <link to vault session log>
Approximate timestamp: <when in the session this idea came up>
- Confirm to the user: "Banked as BANK-NNN: . Resume anytime with /smith-bank process BANK-NNN."
- Return to the original conversation without disruption — do NOT start any follow-up workflow.
list — Show All Banked Ideas
Display all banked ideas sorted by date descending. Read each .md file in .smith/vault/bank/ (exclude archive/ subdirectory), extract frontmatter fields.
Format:
Bank Vault — N ideas deposited
BANK-001 [medium] Trends article recommendation engine 2026-04-03
BANK-002 [high] Auto-generate component Storybook stories 2026-04-04
BANK-003 [medium] Email thread summarization endpoint 2026-04-05
Filters:
list --priority <level> — filter by priority (critical, high, medium, low)
list --system <system-id> — filter by primary_system or also_affects containing the system ID
If no ideas exist: "Bank vault is empty. Use /smith-bank to deposit your first idea."
process <id> — Withdraw and Build
Withdraws an idea from the bank and starts a /smith-new workflow:
- Read the banked spec file matching the given ID (e.g.,
BANK-001)
- Update the bank entry: set
status: in-progress, add processing_started: <timestamp> and feature_branch: <TBD> to frontmatter
- Invoke
/smith-new with the idea description, draft requirements, systems affected, and open questions pre-loaded as the initial feature context. The user should NOT have to re-explain the idea.
- When the
/smith-new workflow completes:
- If built and merged: update bank entry
status: completed, add completed: <timestamp> and feature_branch: <branch-name>
- If queued: update bank entry
status: queued
edit <id> — Edit a Banked Idea
Open the banked idea file for the given ID. Read and display its current contents, then ask the user what they'd like to change. Support updating:
- Title
- Priority
- Requirements
- Open questions
- Systems affected
- Any free-form notes
Write the updated file back after changes.
remove <id> — Archive a Banked Idea
- Find the bank file matching the given ID
- Ask for confirmation: "Remove BANK-NNN: ? This moves it to the archive. (y/n)"
- If confirmed: move the file to
.smith/vault/bank/archive/ (create directory if needed)
- Confirm: "BANK-NNN archived."
prioritize <id> --priority <level> — Change Priority
Quick shorthand to change priority without the full edit flow.
- Find the bank file matching the given ID
- Update the
priority: field in frontmatter to the new level
- Valid levels:
critical, high, medium, low
- Confirm: "BANK-NNN priority updated to ."
Implementation Notes
- Bank files live in
.smith/vault/bank/, archived files in .smith/vault/bank/archive/
- Create
.smith/vault/bank/ if it doesn't exist on first use
- ID matching: scan all
.md files in bank/ for frontmatter id: field matching the requested ID
- Slug generation: lowercase the title, replace spaces with hyphens, remove special chars, truncate to 50 chars
- This skill should be handled directly in the main session — never delegate to a sub-agent