Skip to content

Reference — intent fields, modes, and projection profiles

Look up intent fields, level-specific additions, risk modes, output locations, contract maturity, and tracker projections.

The intent template (shipped with the frame-intent skill at frame-intent/assets/intent-template.md). Only Outcome and Opportunity are load-bearing; the rest are offered, never required.

FieldMeaning
Slugkebab-case; matches the filename
Levelthe altitude this intent sits at — an open recognized set, product-vision › product-strategy › capability › feature (name an intervening altitude if your org has one; not a closed enum)
Scaleapp or business-unit — resolved at intake (see Modes)
Maturitygreenfield or brownfield — gates current-state inputs
Parent intentoptional back-link to the intent this was decomposed from
Outcomea steerable input metric + the lagging outcome + a guardrail
Opportunitythe solution-independent need (a job to be done)
Assumptionswhat must be true for the bet to pay off
Decompositionthe children: lower-level intents, or a spec/slice at the leaf

Product-altitude fields (level-conditional)

Section titled “Product-altitude fields (level-conditional)”

When Level is a product altitude, the intent template seeds an extra, level-conditional field block — filled only at that rung; an empty heading is a prompt, not an error. Both live in the single intent-template.md; there is no new per-rung template or schema.

RungSeeded fields
product-visioncustomer-shaped pitch · the change · the job + struggling moment · who, by circumstance · existing alternatives · narrowest wedge · demand evidence · open assumptions tiered (must-test-before-shipping / accept-as-bet / will-monitor-post-ship) · counter-metrics
product-strategycentral challenge (diagnosis) · guiding policy · coherent actions (3–5) · problem/segment sequence · horizon

de-risk-intent tests this intent’s riskiest assumption in the kind its level calls for:

LevelDe-risk kind
product-vision / product-strategymarket-existence — will anyone want this at all (market desirability) and can it be a business (viability); tested once at the top, categorically distinct from feature desirability
capabilityarchitectural / adoption
featuredesirability

One global axis, resolved once; the rest are per-intent flags.

ModeScopeValuesEffect
Scaleglobal (per repo)appbusiness-unitsuggests a starting altitude (decoupled from Level, overridable in a word), and sets where work lives + leaf shape; resolved at intake (infer → confirm → ask)
Maturityper-intentgreenfieldbrownfieldbrownfield unlocks current-state inputs (journey / process map)
Reversibilityper-intent (in de-risk-intent)one-way ↔ two-way doorrecommends the prototype-approach
Prototype-approachper-intent (in de-risk-intent)validate-firstprototype-ledhow the bet is tested; defaulted by reversibility, overridable

Business-unit scale — cross-component fields

Section titled “Business-unit scale — cross-component fields”

At business-unit Scale the feature intent is sliced per component into one core brief per repo, coordinated from a value-stream meta-repo (the align-value-stream skill). The fields and artifacts that appear at this scale:

Field / artifactWhere it livesMeaning
parent-intenteach per-component briefoptional upward pointer to the product intent the slice was projected from; provenance only, never interpreted by author-delivery-brief continue. The brief-level analogue of the intent-level Parent intent back-link in Intent fields above — same upstream-pointer idea, one artifact down. Distinct from Epic (an external coordinator).
federated catalogmeta-repoBackstage Domain→System→Component→API; references each component repo’s own catalog-info.yaml, never re-authored.
contract@version + courier snapshoteach slicethe shared contract referenced by version (never forked) + a read-only snapshot for provenance; provider/consumer roles mirror providesApi / consumesApi with a compatibility direction.
cross-component rollupmeta-repoa markdown table, one row per slice → brief → status snapshot + coverage pointer; the AND across rows answers “delivered across all components?”; absent-source rows show unknown / not-yet-catalogued (never silently delivered).

The hard limits are stated honestly: no atomic cross-repo commit, no shared release train, and the rollup is a snapshot, not a live feed. See the how-to Run a capability across a value stream.

Output locations — config-driven, docs/product by default

Section titled “Output locations — config-driven, docs/product by default”

frame-intent writes intents to <parent>/intents/<slug>.md and align-value-stream writes rollups to <parent>/rollups/<slug>.md. Both resolve parent from the [product] table of an adopter-created agentbundle-layout.toml (repo-root file overrides user-profile file per table; default docs/product when no section resolves). Each intent and rollup is a single file — a per-topic folder is deliberately not used. Full schema and anchor/security-rail details are in each skill’s references/agentbundle-layout.md. decompose-intent’s docs/product/briefs/<slug>.md output is pinned and not governed by this config.

The detailed wire contract is pinned at the spec stage, not at intent.

StageContract maturity
intentbehavioral only (no fields/types)
briefinteraction / consumer-expectation (not a full schema)
specdetailed wire contract (the existing Contract: seam)
buildimplement + verify

The intent tree is deeper than any tracker. A repository may use a tracker as an outbound projection, or declare tracker-origin authority for mapped fields and use the configured refresh processor. The profile and artifact authority record decide the direction; tracker object names do not.

CanonicalnoneLinear (lean)Jira Align (deep)
capability intentmarkdownInitiativeEpic
feature intentmarkdownProjectFeature
spec / slice (leaf)a direct core spec; coordinating brief only for multi-spec or cross-repository workIssueStory
story-as-traceAC checklistsub-issueStory / sub-task

v1 ships the mapping, not a live API; a story is a trace of a spec, never the decomposition unit. Live tracker sync is a later pack.