MikaAir LIGHTNESSCapability Book
目次を開く

F BUS / 実装状態は正本registryから生成

F4_Forms_Mail / Forms / Mail

入力をreceiptとして保存し、送信内容を隠さず確認できる器官。

form intake がspam/rate境界を通り、宛先・件名・目的・本文抜粋を見せたmail planになる。

入力 → 状態 → 出力

線形テキスト代替: Action Registryが検証したpayloadをengineへ渡す。engineはこの器官のdurable state sliceを更新し、resultまたはerrorをAction Coreへ返す。光は実行中、琥珀の境界はarmed状態、外縁はこの器官の作用半径を表す。
  1. 入力validated JSON payload
  2. 状態engine-owned durable slice
  3. 承認必要な外部 / 不可逆操作だけ
  4. 出力result / receipt / explicit error
  5. 回復送信失敗はreceipt/send logに残り、同じidempotency keyで重複送信せず再試行できる。
5 registered actionsnone dependenciesresend binding reference

保存状態はAction Coreのfilesystem state store内の capabilities sliceとして再起動可能なplain dataで保持される。functionや秘密値をstateへ保存しない。

全Action

以下はAction Registryに実在するF4_Forms_Mailの全actionである。クリックでpayload境界、状態、出力、回復を開ける。

capability.forms.bindBind forms and maillocal or validated transition
payload
provider
状態
unbound → configured / ready
result
Capability engine の ok result、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。
recovery
error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.forms.intakeForm intakelocal or validated transition
payload
fields
状態
state transition defined by the capability engine
result
Capability engine の ok result、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。
recovery
error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.forms.mail.planPlan outbound maillocal or validated transition
payload
receiptId to subject body purpose
状態
state transition defined by the capability engine
result
Capability engine の ok result、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。
recovery
error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.forms.mail.armArm outbound maillocal or validated transition
payload
mailPlanId
状態
state transition defined by the capability engine
result
Capability engine の ok result、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。
recovery
error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.forms.mail.executeExecute outbound maillocal or validated transition
payload
mailPlanId
状態
state transition defined by the capability engine
result
Capability engine の ok result、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。
recovery
error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。

Capability Spec

F4 Forms / Mail — Capability Spec

Provider-independent form intake and mail capability with validation, spam/rate boundaries, durable receipt state, visible recipient/content/purpose preview, and Resend-compatible binding (send disabled until binding + explicit approval).

Form Receipt States

StateMeaning
receivedRaw intake recorded.
validatedPassed validation and boundaries.
rejectedValidation or rate failure.
spamSpam boundary triggered.
queuedValidated and linked to mail plan.

Mail States

StateMeaning
draftLocal mail intent.
plannedMail plan recorded.
approval_requiredAwaiting human approval; preview visible.
sendingProvider send in flight.
sentDurable send receipt.
failedSend failure preserved for retry.

Actions

ActionFlow
bindConfigure Resend binding; sending remains disabled
intakeValidate fields, spam/rate check → durable receipt
mail_planCreate mail plan with recipient/subject/purpose preview
mail_armExplicit human approval; enables send gate
mail_executeArmed → provider mock send; idempotent retry

Boundaries

  • No hidden recipient or content: preview includes recipient, subject, purpose, body excerpt
  • No background send: plan → approval → execute only
  • Failures preserved in receipt/send_log for retry without duplicate send (idempotency key)
  • No address/content hidden from operator preview

Environment Names (values never in repo)

NameRole
RESEND_API_KEYProvider API key
MIKAAIR_MAIL_FROMFrom address env reference
MIKAAIR_MAIL_RATE_LIMIT_PER_HOURRate boundary
MIKAAIR_FORMS_SPAM_KEYWORDSComma-separated spam keywords

Provider Binding

Reference adapter: Resend contract mock at binding/adapter_contract.mjs. Sending disabled until binding and explicit approval.

binding / secret boundary

provider設定はbinding templateから参照する。環境変数は名前だけを扱い、値はsource repository・画面・reportに書かない。

環境変数名扱い
RESEND_API_KEYsecret reference — 値は表示・保存しない
MIKAAIR_MAIL_FROMconfiguration reference — 値は表示・保存しない
MIKAAIR_MAIL_RATE_LIMIT_PER_HOURconfiguration reference — 値は表示・保存しない
MIKAAIR_FORMS_SPAM_KEYWORDSconfiguration reference — 値は表示・保存しない

送信失敗はreceipt/send logに残り、同じidempotency keyで重複送信せず再試行できる。

source trace

../MikaAir LIGHTNESS/F_BUS_Capability/F4_Forms_Mail/spec/capability_spec.md e7afcc2d8884
../MikaAir LIGHTNESS/F_BUS_Capability/F4_Forms_Mail/binding/binding_manifest.template.json 322683946d00
../MikaAir LIGHTNESS/F_BUS_Capability/F4_Forms_Mail/agent.md 2f5540ae59d3
../MikaAir LIGHTNESS/F_BUS_Capability/runtime_bridge.mjs 7e7384638a41
../MikaAir LIGHTNESS/F_BUS_Capability/action_surface.mjs e5bae5f48648
../MikaAir LIGHTNESS/A_BUS_Action_Core/A2_State_Store/filesystem_store.mjs b1cc32d3f456
../MikaAir LIGHTNESS/F_BUS_Capability/F4_Forms_Mail/contract/index.mjs 2db24ad5c62e
../MikaAir LIGHTNESS/F_BUS_Capability/F4_Forms_Mail/engine.mjs 2e4a559c449d