Powers
Without strategic context, coding agents guess. With too much, they drown in it.
AlienMonster's powers curate your project's primitives into focused markdown files. When you start a coding task, the get_relevant_powers MCP tool matches your task against the powers and returns only the ones your agent needs.
Powers render automatically from the primitives you capture. You don't install or create them directly โ if you've answered the Facilitator's questions about users, the target-user power renders on its own.
The five shipped powers
AlienMonster ships five powers today. Each is a .alienmonster/powers/<slug>.md file that aggregates primitives from specific dimensions.
| Power | Covers | Feeds from |
|---|---|---|
๐ค target-user | Primary persona, goals, frustrations, decision context | who, what, why |
๐ต business-model | Revenue streams, pricing, key costs, unit economics | money, who |
๐ญ market-position | Key competitors, positioning, differentiators | market, what |
๐ง tech-decisions | Stack, architecture rules, rejected alternatives | capability, decisions |
โ ๏ธ risk-register | Critical assumptions, external threats, dependencies | risk, evidence |
How powers render
Each power has a readiness threshold โ the minimum primitives it needs before it renders a non-empty file:
target-userrenders with at least twowhoprimitives.business-modelrenders with at least onemoneyprimitive.market-positionrenders with at least onemarketprimitive.tech-decisionsrenders with at least onecapabilityprimitive of subtypetechnical.risk-registerrenders with at least oneriskprimitive.
If a power's threshold isn't met, it renders empty and the file is elided from .alienmonster/powers/. A fresh project has zero powers until sessions populate primitives.
When agents load them
Powers activate on-demand. Each has an inclusion mode:
- always โ loaded whenever an agent asks for context. Used by
target-userandrisk-register. - fileMatch โ loaded when the task touches files matching a glob.
tech-decisionsloads forsrc/**,prisma/**,scripts/**.market-positionloads formarketing/**,landing/**,website/**. - auto โ loaded when the task description matches the power's keywords.
business-modelmatches onpricing,billing,revenue,monetization, and similar. - manual โ loaded only when explicitly requested via the
include_powersargument. No shipped power uses this mode.
When multiple powers match, a priority score (hand-picked, 70โ90) sorts which return first. Highest priorities: target-user (90), risk-register (85), tech-decisions (80).
Per-project overrides
You can tune when each power loads by editing the path-mappings.yaml file in your project's repo browser at /projects/[projectId]/repo/path-mappings.yaml. The file is server-side configuration on your project โ the CLI does not sync it to disk. Default is empty; all defaults apply unchanged.
# path-mappings.yaml โ edited via the web UI repo browser
version: 1
mappings:
- power: tech-decisions
file_match_patterns:
- src/**
- prisma/**
- packages/backend/** # monorepo addition
- power: business-model
additional_keywords:
- stripe-connect
- power: market-position
priority_override: 95 # raise above always-on powersChanges take effect on the next get_relevant_powers call โ loadPathMappings(projectId) reads the latest server state per request.
MCP tools that surface powers
Two MCP tools deliver power content to agents:
get_relevant_powersโ takes a feature description and optional file paths; returns matched powers with their rendered markdown content.get_feature_contextโ the flagship pre-plan composition tool. Returns relevant powers plus blocking assumptions plus related tasks plus workspace artifacts plus doctrine warnings, in one response.
Source
Implementation lives in src/lib/repo/scribe/renderers/render-power-file.ts (the renderer) and src/lib/repo/scribe/renderers/power-inclusion.ts (default inclusion config).