Handbook
Specific intelligence
Specific intelligence answers: for this problem family, which deterministic decisions exist and which LLM accelerators are legal?
Updated
Pack layout
packs/<domain>/
policy.yaml # intelligence policy instance
README.md # domain narrative
flows/ # .lmeta scripts (composition only)
fixtures/ # golden route traces
Authoring rules
- Compose LCDL/lmeta — use existing tasks, operators,
forgeDecide; do not fork FlowExecutor. - Closed actions — every break-in must list
allowed_actionsinpolicy.yaml. - Bounded facts — break-in inputs capped (see LCDL decision break-in guide).
- Fixtures required — at least one golden
route_traceper pack. - Register — add entry to
packs/catalog.yaml.
LCDL extensions (FI-local)
Intelligence-specific executable I/O contracts live in forge-intelligence
(lcdl/contracts/intelligence_*_v1/). Packs reference them via maturity contract fields
and lmeta units — they are not duplicated inside forge-lcdl.
forge-lcdl owns domain-agnostic atoms: transport, FlowExecutor, operators, generic retry,
and tasks promoted when ≥2 domains need the same substrate primitive. Packs compose those
via substrate_reuse in FI contracts — see ADR-0002.
Promote a task to forge-lcdl core only when the ≥2-domain rule is satisfied.
lmeta per domain
Each domain may ship .lmeta flows under flows/. These are libraries, not deployments:
- Reference ingestion patterns from forge-cdp-manager where applicable.
- Use guards + budgets before any
forgeDecide. - Fail-closed defaults on all break-ins.
Reference pack: situation-arbitrate
| Item | Location |
|---|---|
| Policy | packs/situation-arbitrate/policy.yaml |
| Flow | packs/situation-arbitrate/flows/situation_arbitrate.lmeta |
| Fixture | packs/situation-arbitrate/fixtures/golden_route_trace.json |
Wraps LCDL automation_situation_arbitrate and the decision break-in pattern.
Domain index
See domains/README.md for the catalog of registered problem classes.