원클릭으로
aibdd-form-activity
將上游 `/aibdd-flows-specify` 產出的 Activity modeling elements 逐一翻譯成 `.activity` DSL,寫入檔案並執行語法驗證。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
將上游 `/aibdd-flows-specify` 產出的 Activity modeling elements 逐一翻譯成 `.activity` DSL,寫入檔案並執行語法驗證。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
當要把一筆需求對齊進 plan package 時觸發,這筆需求可以是對既有規格的變更或缺陷,也可以是要落到既有或全新 plan package 的全新需求。把這筆需求追加進 spec.md 並校準 impact matrix。
跨 skill 共用資源庫,本身不會被執行,只存放供其他 skill 載入的共用資源(reference/asset/script)。
Turn a legal Red handoff for target feature files green by verifying drift, editing product code only, detecting failure oscillation, and emitting a Green handoff. TRIGGER when Green execute is requested after aibdd-red-execute. SKIP when no legal Red handoff exists or the request is test, DSL, runtime, or architecture repair.
當 reconcile 校準 impact matrix 後、本 owner 名下有 pending impact 待落成 persistent data schema 時觸發。以 `read --owner aibdd-data-plan --impact-status pending` 為 worklist,依 Discovery 真相(spec.md/feature truth)把須穩定保存的系統狀態推論成 state schema、在草稿上收斂後委派 boundary profile 宣告之 state_specifier 落地至 `${DATA_DIR}`,最後回寫 impact matrix。
Build the entity-to-table mapping (`entity_to_table_mapping.yml`) from a boundary's physical schema specs (DBML / SQL DDL), preserving existing entity names and naming new tables from the plan spec.
Create legal AIBDD red for target feature files by loading project config, mapping every Scenario step to DSL and core preset assets, rendering runtime-visible step definitions, and emitting a Red handoff. TRIGGER when Red execute is requested or delegated by implementation/debug flow. SKIP when the feature package or BDD stack config is absent.
| name | aibdd-form-activity |
| description | 將上游 `/aibdd-flows-specify` 產出的 Activity modeling elements 逐一翻譯成 `.activity` DSL,寫入檔案並執行語法驗證。 |
| metadata | {"user-invocable":false,"source":"project-level dogfooding"} |
Formulation skill。只負責把 /aibdd-flows-specify 的 02-activity-analyze 已完成的 Activity modeling elements 轉成 .activity 語法;不重新判斷 actor 合法性、action 顆粒度、reuse、operation partition、或需求語意。
| ID | Path | Phase scope | Purpose |
|---|---|---|---|
| R1 | aibdd-core::ssot/spec-package-paths.md | global | kickoff boundary-aware path SSOT |
| R2 | references/role-and-contract.md | Phase 1 | caller payload schema + role boundary |
| R3 | references/format-reference.md | Phase 2 | Activity element → .activity syntax mapping |
| R4 | scripts/decoder.py | Phase 4 | .activity DSL decoder(同時為 SKILL.md Phase 4 syntax validator 與 BDD subject;spec SSOT = scripts/tests/activity-decode.feature + scripts/tests/activity-benchmark.feature) |
produces:
$$payload,$$target_path,$$format,$$activity
$contract = READ references/role-and-contract.md$$payload = READ caller payload$$target_path = PARSE $$payload.target_path$$format = PARSE $$payload.format$reasoning = PARSE $$payload.reasoning$$activity = PARSE $reasoning.activity_analysis.activity$graph_gaps = PARSE $reasoning.activity_analysis.graph_gaps$exit_status = PARSE $reasoning.activity_analysis.exit_status$payload_ok = JUDGE $$payload against $contract$payload_ok$$target_path non-empty$$format == ".activity"$$activity.name non-empty$$activity.initial exists$$activity.finals) >= 1$$activity.nodes is one of Action | Decision | Fork | Merge | Join$exit_status == "complete"$graph_gaps) == 0produces:
$$activity_doc
$syntax_map = READ references/format-reference.md$header = RENDER [ACTIVITY] ${$$activity.name}$actors = RENDER one [ACTOR] line per $$activity.actors[]$initial = RENDER [INITIAL]$node_lines = DERIVE empty line list$node in $$activity.nodes
6.1 BRANCH $node.type
ui_step | command | query:
6.1.1 $line = RENDER Action as [STEP:${$node.display_id}] @${actor.name} ${$node.name} {${$node.binds_feature}}
decision:
6.1.2 $line = RENDER Decision as [DECISION:${$node.display_id}] ${$node.condition}
6.1.3 $path_lines = RENDER every decision_path as [BRANCH:${$node.display_id}:${path.guard}]
fork:
6.1.4 $line = RENDER Fork as [FORK:${$node.display_id}]
6.1.5 $path_lines = RENDER every fork_path as [PARALLEL:${$node.display_id}]
merge:
6.1.6 $line = RENDER Merge as [MERGE:${$node.display_id}]
join:
6.1.7 $line = RENDER Join as [JOIN:${$node.display_id}]
6.2 $node_lines = DERIVE append $line and $path_lines
END LOOP$finals = RENDER one [FINAL] line per $$activity.finals[]$$activity_doc = RENDER .activity document from $header, $actors, $initial, $node_lines, and $finals$$activity_doc contains [ACTIVITY], [INITIAL], and [FINAL]produces:
$$written_paths
$target_exists = MATCH path_exists($$target_path)$target_exists ∧ $$payload.mode != "overwrite":
2.1 $msg = DRAFT "path 衝突:target_path 已存在,caller 需指定 mode=overwrite 或改 target_path"
2.2 RETURN $msg$$target_path ← $$activity_doc$$written_paths = DERIVE [$$target_path]$$target_path in $$written_pathsproduces:
$$validation_report
$validator = COMPUTE scripts/decoder.py$validation_out = TRIGGER python3 ${$validator} ${$$target_path}$$validation_report = PARSE $validation_out, schema=activity-syntax-validation-report$$validation_report.ok == trueproduces:
$$report
$$report = DRAFT report JSON ← {status: "completed", target_path: $$target_path, written_paths: $$written_paths, syntax_valid: $$validation_report.ok, validation_report: $$validation_report}$$reporttarget_path 未指定: RETURN "target_path missing"format != ".activity": RETURN "format unsupported"reasoning.activity_analysis.activity 缺失: RETURN "activity modeling elements missing".activity tag: RETURN element formulation errortarget_path 已存在且 mode != overwrite: RETURN path conflict${$$target_path}.report ← $$report/aibdd-flows-specify(flow/activity modeling)DELEGATE。