F10_Community / Community
F1の本人性の上に、投稿・コメント・moderationを置く共同器官。
F1 sessionを持つsubjectがdraftを作り、publish planを承認して公開する。
入力 → 状態 → 出力
- 入力validated JSON payload
- 状態engine-owned durable slice
- 承認必要な外部 / 不可逆操作だけ
- 出力result / receipt / explicit error
- 回復ownershipとmoderator roleを検査し、contentはsoft delete/restoreで不可逆に消し切らない。
保存状態はAction Coreのfilesystem state store内の capabilities sliceとして再起動可能なplain dataで保持される。functionや秘密値をstateへ保存しない。
全Action
以下はAction Registryに実在するF10_Communityの全actionである。クリックでpayload境界、状態、出力、回復を開ける。
capability.community.bindBind communitylocal or validated transition
- payload
provider- 状態
- unbound → configured / ready
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.community.joinJoin communitylocal or validated transition
- payload
subjectIddisplayName- 状態
- state transition defined by the capability engine
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.community.update_profileUpdate community profilelocal or validated transition
- payload
subjectId- 状態
- state transition defined by the capability engine
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.community.draft_postDraft community postlocal or validated transition
- payload
subjectIdtitlebody- 状態
- state transition defined by the capability engine
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.community.plan_publishPlan community publishapproval boundary / external effect
- payload
postIdsubjectId- 状態
- durable plan → approval_required
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.community.arm_publishArm community publishapproval boundary / external effect
- payload
publishPlanId- 状態
- approval_required → armed
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.community.execute_publishExecute community publishapproval boundary / external effect
- payload
publishPlanIdsubjectId- 状態
- armed → visible provider/result state
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- 実行前にarm状態を要求する。失敗はengineが保持し、同一keyは重複実行を防ぐ。
capability.community.add_commentAdd community commentlocal or validated transition
- payload
postIdsubjectIdbody- 状態
- state transition defined by the capability engine
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.community.list_postsList community postslocal or validated transition
- payload
- JSON object(validatorに個別fieldなし)
- 状態
- state transition defined by the capability engine
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.community.report_contentReport community contentlocal or validated transition
- payload
subjectIdtargetTypetargetId- 状態
- state transition defined by the capability engine
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.community.moderateModerate community contentlocal or validated transition
- payload
moderatorIdtargetTypetargetIdaction- 状態
- state transition defined by the capability engine
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.community.soft_deleteSoft delete community contentapproval boundary / external effect
- payload
subjectIdtargetTypetargetId- 状態
- state transition defined by the capability engine
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
capability.community.restoreRestore community contentlocal or validated transition
- payload
moderatorIdtargetTypetargetId- 状態
- state transition defined by the capability engine
- result
- Capability engine の
okresult、または明示的な validation / provider error。plan・receipt・stateは持続sliceへ返る。 - recovery
- error codeと状態を残し、必要に応じて再計画・再承認・retryへ戻る。
Capability Spec
F10 Community — Capability Spec
Community membership, profile, post, comment, and moderation lifecycle with Supabase Auth/DB binding contract mock. F1 Auth dependency is explicit — all mutating actions require authenticated subject from F1.
Lifecycle Areas
| Area | States |
|---|---|
| Membership | open, pending, approved, rejected, banned |
| Publish | draft, planned, approval_required, published, failed |
| Content visibility | draft, published, hidden, soft_deleted |
| Reports | open, reviewing, resolved, dismissed |
Authorization
- F1 session required (
MIKAAIR_COMMUNITY_F1_SESSION_REQUIREDdefault1) - Ownership checks for publish/delete
- Moderator role for moderation audit actions
Actions
| Action | Flow |
|---|---|
bind | Supabase binding |
join | Create membership |
update_profile | Profile upsert |
draft_post | Local draft |
plan_publish → arm_publish → execute_publish | Approval-required publish |
add_comment | Comment on published post |
report_content | User report |
moderate | Moderation audit trail |
soft_delete / restore | Soft-delete and restore |
list_posts | Paginated listing |
F1 Dependency
{ "capability_id": "F1_Auth", "required": true }
Environment Names
| Name | Role |
|---|---|
SUPABASE_URL | Supabase project URL |
SUPABASE_PUBLISHABLE_KEY | Client-safe key |
SUPABASE_SECRET_KEY | Server-only key |
MIKAAIR_COMMUNITY_F1_SESSION_REQUIRED | Require F1 session (1/0) |
binding / secret boundary
provider設定はbinding templateから参照する。環境変数は名前だけを扱い、値はsource repository・画面・reportに書かない。
| 環境変数名 | 扱い |
|---|---|
SUPABASE_URL | configuration reference — 値は表示・保存しない |
SUPABASE_PUBLISHABLE_KEY | configuration reference — 値は表示・保存しない |
SUPABASE_SECRET_KEY | secret reference — 値は表示・保存しない |
MIKAAIR_COMMUNITY_F1_SESSION_REQUIRED | configuration reference — 値は表示・保存しない |
ownershipとmoderator roleを検査し、contentはsoft delete/restoreで不可逆に消し切らない。
source trace
../MikaAir LIGHTNESS/F_BUS_Capability/F10_Community/spec/capability_spec.md a4e784c89a8b../MikaAir LIGHTNESS/F_BUS_Capability/F10_Community/binding/binding_manifest.template.json e78ae31b332f../MikaAir LIGHTNESS/F_BUS_Capability/F10_Community/agent.md e29942d73888../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/F10_Community/contract/index.mjs 9cfbb981a7ba../MikaAir LIGHTNESS/F_BUS_Capability/F10_Community/engine.mjs b34f8ac38331