Help us improve
Share bugs, ideas, or general feedback.
From ideas-funnel
One-time bootstrap for the ideas-funnel plugin. Creates the user config directory, writes a starter domain YAML if none exist, verifies the vault has the required scaffold (Raw/Inbox, Domains/, _meta/, CRITICAL_FACTS.md), appends the v2 schema extension to wiki-schema.md if not already present, and prints a next-steps checklist. Trigger phrases: "init ideas-funnel", "bootstrap the funnel", "/ideas-funnel:init".
npx claudepluginhub cosmicdreams/claude-plugins --plugin ideas-funnelHow this skill is triggered — by the user, by Claude, or both
Slash command
/ideas-funnel:initThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Used by:** human — one-time at plugin install.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Applies a firm's KYC/AML rules grid to parsed onboarding records: assigns risk rating, checks required documents, outputs rule outcomes with citations, and routes for escalation.
Designs test strategies and plans with testing pyramid. Covers APIs, frontend, data pipelines, infrastructure; outputs plans including coverage targets, examples, and gaps.
Share bugs, ideas, or general feedback.
Used by: human — one-time at plugin install.
Idempotent bootstrap. Safe to run every session; only creates what's missing.
Default vault path is ~/Vaults/Neurons. Override with OBSIDIAN_VAULT env var.
VAULT="${OBSIDIAN_VAULT:-$HOME/Vaults/Neurons}"
test -d "$VAULT" || { echo "Vault not found at $VAULT"; exit 1; }
CONFIG_DIR="$HOME/.config/ideas-funnel/domains"
mkdir -p "$CONFIG_DIR"
If $CONFIG_DIR is empty, copy the starter domain template in:
if [ -z "$(ls -A "$CONFIG_DIR" 2>/dev/null)" ]; then
cp "${CLAUDE_PLUGIN_ROOT}/templates/domain.yaml" "$CONFIG_DIR/ai-workflows.yaml"
echo "Created starter domain config: $CONFIG_DIR/ai-workflows.yaml"
fi
Create any missing directories:
mkdir -p "$VAULT/_meta" "$VAULT/Raw/Inbox" "$VAULT/Raw/Assets" \
"$VAULT/Domains" "$VAULT/Bridges" "$VAULT/Conflicts"
# Empty-dir sentinels so Obsidian + git see them
for d in Bridges Conflicts Raw/Assets; do
[ -f "$VAULT/$d/README.md" ] || echo "# placeholder" > "$VAULT/$d/README.md"
done
# Manifest
[ -f "$VAULT/Raw/.manifest.json" ] || echo '{"version": 1, "entries": {}}' > "$VAULT/Raw/.manifest.json"
If missing, copy the template. If present, leave alone (user may have edited it).
if [ ! -f "$VAULT/CRITICAL_FACTS.md" ]; then
cp "${CLAUDE_PLUGIN_ROOT}/templates/critical-facts.md" "$VAULT/CRITICAL_FACTS.md"
echo "Created: $VAULT/CRITICAL_FACTS.md — EDIT THIS with operator identity."
fi
If the extension marker is not yet present, append it.
MARKER="<!-- ====== ideas-funnel v2 extension — appended on init ====== -->"
if [ -f "$VAULT/wiki-schema.md" ] && ! grep -q "$MARKER" "$VAULT/wiki-schema.md"; then
{
echo ""
echo "$MARKER"
echo ""
cat "${CLAUDE_PLUGIN_ROOT}/templates/wiki-schema-extension.md"
} >> "$VAULT/wiki-schema.md"
echo "Appended v2 extension to wiki-schema.md."
fi
If wiki-schema.md does not exist at all, copy the extension as a standalone file:
if [ ! -f "$VAULT/wiki-schema.md" ]; then
cp "${CLAUDE_PLUGIN_ROOT}/templates/wiki-schema-extension.md" "$VAULT/wiki-schema.md"
echo "Created: $VAULT/wiki-schema.md — REVIEW and reconcile with your conventions."
fi
✓ ideas-funnel initialized.
Vault: $VAULT
Config: $HOME/.config/ideas-funnel/domains/
Active domains: $(ls $HOME/.config/ideas-funnel/domains/ 2>/dev/null)
Next steps:
[ ] Edit $VAULT/CRITICAL_FACTS.md with operator identity + timezone.
[ ] Edit $HOME/.config/ideas-funnel/domains/ai-workflows.yaml — feeds, keywords, bootstrap seeds.
[ ] Edit $VAULT/Domains/AI-Workflows/_landing.md — write the landscape paragraph.
[ ] Review the v2 extension block at the bottom of $VAULT/wiki-schema.md.
[ ] Drop 2–3 bootstrap articles into $VAULT/Raw/Inbox/ai-workflows/.
[ ] Run /ideas-funnel:ingest manually to test.
[ ] Register Monitor by ensuring the plugin is installed (monitors.json handles this automatically).