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.

PowerCoversFeeds from
๐Ÿ‘ค target-userPrimary persona, goals, frustrations, decision contextwho, what, why
๐Ÿ’ต business-modelRevenue streams, pricing, key costs, unit economicsmoney, who
๐Ÿญ market-positionKey competitors, positioning, differentiatorsmarket, what
๐Ÿ”ง tech-decisionsStack, architecture rules, rejected alternativescapability, decisions
โš ๏ธ risk-registerCritical assumptions, external threats, dependenciesrisk, evidence

How powers render

Each power has a readiness threshold โ€” the minimum primitives it needs before it renders a non-empty file:

  • target-user renders with at least two who primitives.
  • business-model renders with at least one money primitive.
  • market-position renders with at least one market primitive.
  • tech-decisions renders with at least one capability primitive of subtype technical.
  • risk-register renders with at least one risk primitive.

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-user and risk-register.
  • fileMatch โ€” loaded when the task touches files matching a glob. tech-decisions loads for src/**, prisma/**, scripts/**. market-position loads for marketing/**, landing/**, website/**.
  • auto โ€” loaded when the task description matches the power's keywords. business-model matches on pricing, billing, revenue, monetization, and similar.
  • manual โ€” loaded only when explicitly requested via the include_powers argument. 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 powers

Changes 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).

Was this page helpful? YesNo