بنقرة واحدة
add-data-source
Suggest, elicit, and record external data sources for a project (Printing Press-aware)
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Suggest, elicit, and record external data sources for a project (Printing Press-aware)
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Capability discovery — the canonical answer to 'what can you do?' and 'what do I say to ...?'
Close skill — draft resolution comment, sync backends, redirect to next task
Start skill — begin task with optional backend sync
End-of-day wrap-up skill — daily summary and status update
Morning brief skill — prioritized daily summary
Reconcile skill — detect wiki/backend drift and let the User resolve it via four moves
| name | add-data-source |
| description | Suggest, elicit, and record external data sources for a project (Printing Press-aware) |
Suggest, elicit, and record external data sources for a project. Recommends Printing Press CLIs from its catalog when applicable; also covers native CLIs, sniff targets, CSV imports, and wishlist gaps. Callable any time — not coupled to project creation.
$ARGUMENTS — optional project slug. If omitted, list projects and ask which one.
Resolve the project page.
If $ARGUMENTS is empty, list available projects:
rubber-ducky --json wiki search "" --type project --verbose
Ask the user to pick. Otherwise, treat $ARGUMENTS as the project slug and confirm wiki/projects/<slug>.md exists. If it doesn't, fail clearly — direct them to /start-project first.
Show what's already wired. Read existing data sources verbatim:
rubber-ducky --json frontmatter get wiki/projects/<slug>.md data_sources
List current entries (if any). This grounds the conversation and prevents redundant suggestions.
Elicit. Ask two questions, in order:
Check Printing Press install state and inventory. One call covers both:
rubber-ducky --json pp status
rubber-ducky --json pp installed
pp status tells you whether any printed CLIs are installed locally; pp installed lists them. If nothing is installed yet, share the install line for a curated starter set but don't block — catalog suggestions are still useful as a "here's what to install when you're ready" plan:
npx -y @mvanhorn/printing-press install starter-pack
Browse the published catalog. Use PP's own consumer-side commands (the Go printing-press binary is an author tool — generate/verify/publish — and doesn't expose browse subcommands):
npx -y @mvanhorn/printing-press list
npx -y @mvanhorn/printing-press search <keyword>
Both read the live registry at https://github.com/mvanhorn/printing-press-library. If npx is unavailable or offline, point the user at the same page in a browser; continue with non-PP options in that case.
Reason across four paths. PP is the strongest general option but not the only one. Evaluate each:
mercury, stripe, notion) → install with npx -y @mvanhorn/printing-press install <name>. Record in frontmatter as pp:<name>./printing-press <name-or-url>, which runs PP's full generation pipeline (research → spec → CLI → MCP). Record as pp:<name> once printed.gh, stripe-cli, mercury-cli), CSV import, an MCP server, or honest manual entry.Compare and contrast. Pick 2–4 options. One short paragraph each, leading with the tradeoff that matters (auth complexity, freshness, scrape brittleness, cost). End with a single opinionated recommendation: "My pick: try <name> first because …"
Anchor on the user's existing tool from step 3. If they named Monarch and no clean integration path exists, say so plainly: "Monarch doesn't expose a public API; the closest path is Plaid via PP, which talks to your bank directly." Don't pad with irrelevant catalog entries.
Be honest about misfit. If the user banks with Chase and the only banking catalog entry is mercury, point out that Mercury's CLI helps Mercury customers — not Chase. Steer toward Plaid or CSV imports.
Record the decision on the project page. Three writes per chosen source:
data_sources frontmatter (append, never overwrite):
rubber-ducky frontmatter array add wiki/projects/<slug>.md data_sources "<entry>"
Entry conventions (always use a prefix — explicit beats implicit):
"pp:mercury" — Printing Press CLI for Mercury (installed or planned)"sniff:https://www.redfin.com" — PP sniff target (URL-driven print)"external:monarch" — user is using something off-platform (no integration)"wishlist:mls" — known gap, no path yet"cli:gh" — hand-written or official CLI like gh (not PP-printed)"mcp:notion" — MCP server without a paired CLI## Description — extend with a clause naming what's now tracked, if relevant. Use the Edit tool.
## Notes — append a dated entry. Use the Edit tool. Example:
- 2026-05-09: Wired up Mercury via PP. Tracks checking balance and outgoing wires.
Hand off to PP. If the user wants to install something now, give them the exact next command and let them run it in their next message:
npx -y @mvanhorn/printing-press install <name> (quick fetch, no generation)./printing-press <name-or-url> (runs the full generation pipeline as a separate Claude Code skill).Don't invoke either inline.
Confirm the gap closes. After the user reports back that PP finished printing, run:
rubber-ducky --json pp gap <slug>
The named PP CLI should no longer appear in gaps. If it still does, rubber-ducky pp installed will reveal whether the print succeeded.
data_sources appended).## Description extended where relevant; ## Notes gets a dated entry).Brief, opinionated, honest. Value is judgment, not enumeration. A list of every catalog entry that could be tangentially relevant is worse than two well-reasoned suggestions with the tradeoffs spelled out. When no clean path exists, say so plainly and record the gap as a wishlist entry — that's more useful than a forced recommendation.