@moltbankhq/intel-mod
v0.1.0
Published
Daily intelligence pipeline mod. 11 staged-parallel phases (scan → classify → extract → render → publish), generic + opt-in. Replaces moltbank-intel-skill after the 9d parity gate; see docs/parity-gate.md.
Readme
Intel Mod
Daily intelligence pipeline as a Moltbank Mod. Composes:
useSocial()— any pinnedcap.social.search.xprovider for X search.useLLM()— any pinnedcap.llm.chatprovider for synthesis, triage, and brief writing.useKB()— canonical team context (icp.md, intel-topics.md, competitors.md, team/people/*.md).useNotify()— optional publish target (cap.notify.sendprovider only needed when publish is enabled).cap.x402.pay,cap.audit.write— host-provided spend metering.
Status: 9c code-complete; 9d tooling shipped
intel-mod is a generic intelligence pipeline. The package ships zero hardcoded company-specific content (no topic lists, no RSS URLs, no subreddit lists, no competitor names). All per-user content flows through:
config.json— structured:sources.x.categories[],sources.rss.feeds[],sources.reddit.subreddits[],sources.github.repos[],competitors[].- KB docs — free-form:
wiki/business/x-categories.md,wiki/business/intel-topics.md,wiki/business/competitors.md,wiki/team/people/*.md. Read viauseKB(). - Presets — pre-baked answers:
moltbank-defaultcarries the legacy intel-skill values;blankships empty.
What IS bundled: LLM prompt templates that operate on whatever data the user has configured (policy/x-search-prompt.md, policy/triage-prompt.md, …). Generic transformations, no per-user content.
Pipeline shape (staged-parallel)
scan x-scan rss-scan reddit-scan dev-scan competitor-scan
classify triage dev-summary
extract topic-extract
render summary strategy
publish publishPhases within a stage run in parallel via Promise.all; stages execute serially. Per-phase exceptions are isolated (one failure doesn't abort the rest of the stage). Each phase opt-in skips cleanly when its prereqs aren't met (config disabled / no content / no provider).
User-invoked operations (not part of intel run)
intel-mod why --query <q> [--runId YYYY-MM-DD]— read-only inspection of triage decisions.intel-mod feedback --query <q> --expected pick|skip --reason <s>— persists a triage rule the next run will respect.intel-mod strategy-feedback --reason <s> [--scope <s>] [--kind <s>]— persists a framing rule the next strategy run will respect.
Shipping status
| Phase | Scope | Status |
|---|---|---|
| 9a | Manifest, multi-profile config, lifecycle skeleton, auto-migration to org-scoped state | shipped |
| 9b | Setup wizard with cap.kb.propose seeding; --preset moltbank-default / --preset blank | shipped |
| 9c | All 11 pipeline phases + 3 ops + staged-parallel orchestrator + per-stage USDC estimate + capability-probing doctor | shipped |
| 9d | Parity-gate tooling shipped (scripts/parity-diff.mjs + docs/parity-gate.md); 7-day calendar run is the user's to execute | tooling shipped |
| 9e | Cleanup runbook documented at docs/parity-gate.md. Cutover steps (cron switch, intel-skill archive, slack.ts delete) are gated on a passing 9d window | runbook shipped |
intel run runs all registered phases through the staged-parallel orchestrator. intel pipeline --only=<phase> runs a single phase for cheap testing. Daily ops still go through the legacy moltbank-intel-skill package until the 9d gate passes and 9e's cron switch lands — see docs/parity-gate.md.
Install
moltbank mod install intel
# Interactive 13-step wizard (spec §17.2):
moltbank mod setup intel --profile default
# Or short-circuit to today's intel-skill values (Moltbank team identity,
# x402/OpenClaw/agentic-banking topic weights, EN+ES, Telegram draft mode):
moltbank mod setup intel --profile default --preset moltbank-default
# Empty starter for a non-Moltbank workspace:
moltbank mod setup intel --profile default --preset blank
moltbank mod doctor intel --profile defaultThe wizard seeds wiki/business/x-categories.md, wiki/business/intel-topics.md, wiki/business/competitors.md, and wiki/team/people/<slug>.md via cap.kb.propose (proposals land in moltbank-kb/temp/<owner>.md for the reconciler to apply). Set MOLTBANK_INTEL_OWNER (or MOLTBANK_AGENT_NAME) to author proposals under a specific agent name; defaults to agent.
The interactive (no---preset) flow asks per-axis source questions: which X categories (id + name + focus paragraph), which RSS feeds (URL + lookback window), which subreddits, which GitHub repos, which competitors (name + aliases + optional X handle). Skip an axis by saying "no" to its "add now?" loop; you can always edit the resulting config.json or the seeded KB docs later, and drift detection (cap.kb.propose via flagQuestion per spec §17.8) lets the agent propose additions during normal runs.
Multi-profile
One Moltbank org can run N intel pipelines under different profiles (e.g. default for the main brief, fundraising for an investor-focused brief). All commands accept --profile <name>. State paths are isolated under profiles/<name>/:
~/.moltbank/orgs/<orgUuid>/mods/intel/
└── profiles/
├── default/{config.json, state/, runs/, logs/}
└── fundraising/{config.json, state/, runs/, logs/}Cross-org isolation is automatic via §16.6 — agents in different orgs see fully separate intel state without needing profiles.
Caveats
- KB seeding (during setup) is best-effort: if
kb-modis offline the wizard still writes config and surfaces a per-doc skip line in its stderr report. Re-runmoltbank mod doctor intelonce kb-mod is configured to retry seeding. - Auto-migration from the legacy
~/.moltbank/mods/intel/layout to~/.moltbank/orgs/<orgUuid>/mods/intel/profiles/default/runs on first invocation post-upgrade — see architecture spec §16.6 for the migration policy.
