---
name: ram-charter
description: Produce ONLY the Claim-Typing / Decomposition Charter for a research question. Runs S5 only; does NOT dispatch S1-S8. Use for scope review before committing to a full run.
---

# /ram-charter

## Purpose

Run S5 Claim-Typing & Decomposition Engine in isolation. Produce the Charter artifact: typed claims, verb-inventory-accounted-for, per-claim fitness requirements, monoculture flags, fragility flags, typing confidence. No retrieval, no integrity screening, no fitness scoring, no orchestration, no adversarial pass, no warrant, no output rendering.

This command exists so the operator can inspect the Charter before committing to a full run. It is also useful when another system needs only the Charter (for example, to seed its own research plan) and explicitly does not want RAM's downstream machinery.

## Argument Grammar

```
/ram-charter <question> [--domain-hint <string>]
```

**Positional:**
- `<question>` -- required. Natural-language research question.

**Named (optional):**
- `--domain-hint <string>` -- optional domain hint passed to S5 as a monoculture-trigger tiebreaker input ONLY. Never used as a substitute for verb tokenization.

**Rejected argument patterns:**
- `--claim-type <type>` -- REJECTED. S5 types the question; operators cannot pre-assign types.
- `--skip-decomposition` -- REJECTED. Stacked-intent decomposition is non-negotiable.
- `--skip-monoculture-flags` -- REJECTED. Monoculture flags are non-negotiable.

## Parser

```
parse(command):
  tokenize on whitespace respecting quoted strings
  first token == "/ram-charter" -> proceed; else reject
  consume positional <question>
  consume optional --domain-hint <string>
  reject any other flag

validate:
  assert question is non-empty
```

## Router behavior on receipt

1. Mint `inquiry_id` with `mode = "charter-only"`.
2. Create RAM Search Ledger at `state/ram/ram-search-ledger/<inquiry_id>/ledger.jsonl`.
3. Dispatch S5 with the question (and optional domain-hint).
4. Receive the Claim Decomposition Artifact + Surprise Register instance (empty) + Ledger entries for the typing decision.
5. Emit to caller:
   - The full Charter artifact (typed claims, fitness requirements, flags, confidence).
   - The empty Surprise Register handle.
   - The Ledger entry range.
   - An explicit note: `CHARTER_ONLY_RUN -- no retrieval, no orchestration, no adversarial pass, no warrant, no output render.`
6. Do NOT dispatch S1/S2/S3/S4/S6/S7/S8.
7. Do NOT drop anything to `bridge/ram-to-evaluator-handoff/`. The Evaluator does not audit charter-only runs.
8. Write `run_close` to the ledger with `mode: "charter-only"`.

## Example

```
/ram-charter "What parenting styles produce the best child outcomes?"
```

Expected Charter output:
- Claim: single claim, type = causal, text = "what parenting styles produce the best child outcomes".
- Verbs accounted for: `{produce}` -> causal.
- Fitness requirements: internal-validity + identification strategy; disqualifier = no control for confounding.
- Monoculture flags: `{domain-sensitivity: TRUE (child-rearing), claim-type: TRUE (what-works)}` -- forces non-Western corpus routing if a full run is later commissioned.
- Fragility flag: none.
- Typing confidence: HIGH.

## Use cases

- Operator wants to inspect scope before running a full pipeline.
- Upstream planning tool wants only the typed-claim structure (not a full research run).
- Evaluator wants to audit S5 in isolation without the full downstream.

## Failure modes

| Failure | Router response |
|---|---|
| Empty question | REQUEST-CLARIFICATION; halt |
| Pure directive ("research X for me" with no verb mapping to typology) | S5 returns REQUEST-CLARIFICATION; router propagates |
| S5 returns UNTYPABLE claim with confidence LOW | Charter emitted with UNTYPABLE flag; operator decides whether to continue |
| Caller attempts `/ram-stop` on a charter-only run | Ledger closed; no S6 involvement (there is no pipeline to stop) |

## Exit codes

- `0` -- Charter emitted.
- `1` -- REQUEST-CLARIFICATION; no Charter produced.

End of command file.
