Skill v1.0.1
currentAutomated scan100/100+1 new
version: "1.0.1" 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.
Timestamps are UTC. HH:MM:SS comes from date -u +%H:%M:%S — never a local clock, never a time from memory. The append already runs through a shell, so read the clock in that same command (TS=$(date -u +%H:%M:%S)) and spend no extra tool call. Substitute the resulting value: an unexpanded $(...) reaching the log is a known regression and will not parse. Every hook-written stamp in this log is date -u, so a local-clock entry lands hours away from its neighbours and skews the workflow window hooks/workflow_summary_lib.py derives from them.
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.mddescriptions against the idea content. Setprimary_systemandalso_affects. - Determine next bank ID by scanning
.smith/vault/bank/for existing files. Extract the highestBANK-NNNfrom frontmatterid:fields, then increment. Start at BANK-001 if none exist. - Generate the bank file at
.smith/vault/bank/YYYY-MM-DD_HHMMSS-<slug>.mdwith this format:
---id: BANK-NNNtitle: "<concise title>"created: "YYYY-MM-DDTHH:MM:SS"source_session: "<current session log filename>"primary_system: "<detected system or 'unassigned'>"also_affects: []status: bankedpriority: medium---# <Title>## Origin<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>## Idea<Clear description of the feature or improvement, written with enough detail that someone reading this cold could understand what to build>## Requirements (Draft)<Bullet points capturing any requirements that were discussed, even loosely. Include edge cases or constraints mentioned>## Systems Affected- **Primary:** <system name and why>- **Also affects:** <other systems and why, or "none identified">## Open Questions<Any obvious questions that would need answering before this could be built. Pre-populate with the most important unknowns based on the conversation>## Conversation ReferenceSession: <link to vault session log>Approximate timestamp: <when in the session this idea came up>
- Confirm to the user: "Banked as BANK-NNN: <title>. 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 depositedBANK-001 [medium] Trends article recommendation engine 2026-04-03BANK-002 [high] Auto-generate component Storybook stories 2026-04-04BANK-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, addprocessing_started: <timestamp>andfeature_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-newworkflow completes:
- If built and merged: update bank entry
status: completed, addcompleted: <timestamp>andfeature_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: <title>? 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 <level>."
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
.mdfiles inbank/for frontmatterid: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