cowork-flow 0.0.37 → 0.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +27 -14
  2. package/package.json +1 -1
  3. package/src/commands/init.js +39 -28
  4. package/src/commands/sync.js +2 -2
  5. package/src/lib/asset-plan.js +127 -0
  6. package/src/lib/copy-template.js +101 -141
  7. package/src/lib/host-assets.js +231 -0
  8. package/src/lib/plan-applier.js +329 -0
  9. package/src/lib/platforms.js +15 -76
  10. package/src/lib/skill-registry.js +503 -0
  11. package/template/.claude/agents/cowork-check.md +10 -1
  12. package/template/.claude/agents/cowork-implement.md +11 -2
  13. package/template/.claude/hooks/inject-workflow-state.py +51 -254
  14. package/template/.codex/agents/cowork-check.toml +12 -3
  15. package/template/.codex/agents/cowork-implement.toml +11 -2
  16. package/template/.codex/agents/default.toml +3 -2
  17. package/template/.codex/agents/explorer.toml +3 -2
  18. package/template/.codex/agents/worker.toml +2 -1
  19. package/template/.codex/hooks/inject-workflow-state.py +46 -265
  20. package/template/.cowork-flow/.version +1 -1
  21. package/template/.cowork-flow/scripts/application/__init__.py +1 -0
  22. package/template/.cowork-flow/scripts/application/batch_execution.py +743 -0
  23. package/template/.cowork-flow/scripts/application/runtime_context_service.py +365 -0
  24. package/template/.cowork-flow/scripts/application/task_archive.py +220 -0
  25. package/template/.cowork-flow/scripts/application/task_context.py +765 -0
  26. package/template/.cowork-flow/scripts/application/task_creation.py +201 -0
  27. package/template/.cowork-flow/scripts/application/task_lifecycle.py +532 -0
  28. package/template/.cowork-flow/scripts/application/task_tree.py +179 -0
  29. package/template/.cowork-flow/scripts/commands/doctor.py +78 -57
  30. package/template/.cowork-flow/scripts/commands/party_mode_v2.py +671 -425
  31. package/template/.cowork-flow/scripts/commands/subagent.py +38 -26
  32. package/template/.cowork-flow/scripts/commands/task.py +535 -1953
  33. package/template/.cowork-flow/scripts/commands/task_archive_commands.py +195 -0
  34. package/template/.cowork-flow/scripts/commands/task_context_commands.py +240 -0
  35. package/template/.cowork-flow/scripts/commands/task_create_command.py +164 -0
  36. package/template/.cowork-flow/scripts/commands/task_navigation.py +407 -0
  37. package/template/.cowork-flow/scripts/commands/task_parser.py +364 -0
  38. package/template/.cowork-flow/scripts/commands/task_support.py +76 -0
  39. package/template/.cowork-flow/scripts/commands/task_tree_commands.py +160 -0
  40. package/template/.cowork-flow/scripts/common/core/execution_context.py +161 -85
  41. package/template/.cowork-flow/scripts/common/core/host_manifest.py +393 -0
  42. package/template/.cowork-flow/scripts/common/core/skill_registry.py +568 -0
  43. package/template/.cowork-flow/scripts/common/gates/coding_standards.py +58 -7
  44. package/template/.cowork-flow/scripts/common/gates/gates.py +323 -46
  45. package/template/.cowork-flow/scripts/common/gates/models.py +196 -0
  46. package/template/.cowork-flow/scripts/common/gates/registry.py +79 -0
  47. package/template/.cowork-flow/scripts/common/gates/tdd_evidence.py +13 -13
  48. package/template/.cowork-flow/scripts/common/gates/validate_coding_standards.py +104 -62
  49. package/template/.cowork-flow/scripts/common/gates/validate_implementation.py +39 -22
  50. package/template/.cowork-flow/scripts/common/gates/validate_rules.py +223 -40
  51. package/template/.cowork-flow/scripts/common/git/git_context.py +216 -182
  52. package/template/.cowork-flow/scripts/common/host/__init__.py +1 -0
  53. package/template/.cowork-flow/scripts/common/host/workflow_state_hook.py +303 -0
  54. package/template/.cowork-flow/scripts/common/storage/__init__.py +1 -0
  55. package/template/.cowork-flow/scripts/common/storage/operation_log.py +72 -0
  56. package/template/.cowork-flow/scripts/common/storage/state_store.py +279 -0
  57. package/template/.cowork-flow/scripts/common/storage/unit_of_work.py +214 -0
  58. package/template/.cowork-flow/scripts/common/task/active_task.py +93 -135
  59. package/template/.cowork-flow/scripts/common/task/batch_mode.py +33 -120
  60. package/template/.cowork-flow/scripts/common/task/decision_review.py +85 -0
  61. package/template/.cowork-flow/scripts/common/task/readiness.py +9 -15
  62. package/template/.cowork-flow/scripts/common/task/task_repository.py +156 -0
  63. package/template/.cowork-flow/scripts/run.py +24 -0
  64. package/template/.cowork-flow/spec/contracts/decision-anchor.md +8 -2
  65. package/template/.cowork-flow/spec/contracts/subagent-dispatch.md +2 -4
  66. package/template/.cowork-flow/spec/contracts/workflow-state-templates.md +1 -1
  67. package/template/.cowork-flow/spec/protocols/decision-review.md +28 -0
  68. package/template/.cowork-flow/spec/protocols/review.md +34 -0
  69. package/template/.cowork-flow/spec/protocols/spec-maintenance.md +16 -0
  70. package/template/.cowork-flow/spec/protocols/tdd.md +30 -0
  71. package/template/.cowork-flow/spec/references/definition-of-done.md +4 -4
  72. package/template/.cowork-flow/spec/references/orchestration-patterns.md +1 -1
  73. package/template/.cowork-flow/spec/runtime/contract-registry.json +25 -0
  74. package/template/.cowork-flow/spec/runtime/host-assets.json +214 -0
  75. package/template/.cowork-flow/spec/runtime/index.md +8 -0
  76. package/template/.cowork-flow/spec/runtime/rules.json +61 -10
  77. package/template/.cowork-flow/spec/runtime/skill-registry.json +397 -0
  78. package/template/.cowork-flow/spec/schemas/host-assets.schema.json +173 -0
  79. package/template/.cowork-flow/spec/schemas/rules.schema.json +10 -1
  80. package/template/.cowork-flow/spec/schemas/skill-registry.schema.json +202 -0
  81. package/template/.cowork-flow/workflow.md +18 -13
  82. package/template/.opencode/agents/cowork-check.md +11 -0
  83. package/template/.opencode/agents/cowork-implement.md +16 -1
  84. package/template/.zcode/.zcode-plugin/plugin.json +1 -1
  85. package/template/.zcode/hooks/inject-context.js +3 -85
  86. package/template/.zcode/hooks/inject-context.selfcheck.mjs +6 -6
  87. package/template/.zcode/scaffold/.cowork-flow/spec/contracts/decision-anchor.md +8 -2
  88. package/template/.zcode/scaffold/.cowork-flow/spec/contracts/subagent-dispatch.md +2 -4
  89. package/template/.zcode/scaffold/.cowork-flow/spec/runtime/rules.json +61 -10
  90. package/template/.zcode/scaffold/.cowork-flow/spec/schemas/rules.schema.json +10 -1
  91. package/template/.zcode/scaffold/.cowork-flow/workflow.md +18 -13
  92. package/template/.zcode/scaffold/AGENTS.md +18 -8
  93. package/template/AGENTS.md +1 -1
  94. package/template/skills/batch-mode/SKILL.md +140 -76
  95. package/template/skills/brainstorming/SKILL.md +2 -2
  96. package/template/skills/cowork-flow/SKILL.md +42 -0
  97. package/template/skills/party-mode/SHARED-BOUNDARIES.md +1 -1
  98. package/template/skills/party-mode/SKILL.md +48 -119
  99. package/template/.cowork-flow/scripts/common/gates/spec_validator.py +0 -53
  100. package/template/.cowork-flow/scripts/common/gates/validate_jsonl.py +0 -32
  101. package/template/skills/before-dev/SKILL.md +0 -41
  102. package/template/skills/check/SKILL.md +0 -53
  103. package/template/skills/check/simplification-guide.md +0 -47
  104. package/template/skills/continue/SKILL.md +0 -29
  105. package/template/skills/doubt-review/SKILL.md +0 -118
  106. package/template/skills/finish-work/SKILL.md +0 -32
  107. package/template/skills/party-mode-v2/SKILL.md +0 -75
  108. package/template/skills/start/SKILL.md +0 -78
  109. package/template/skills/tdd/SKILL.md +0 -74
  110. package/template/skills/update-spec/SKILL.md +0 -39
  111. package/template/skills/using-cowork-flow/SKILL.md +0 -80
@@ -1,75 +0,0 @@
1
- ---
2
- name: party-mode-v2
3
- description: Use when the user requests a runtime-controlled multi-agent board discussion where children communicate through Party Mode V2 board APIs and the moderator only monitors or corrects drift.
4
- ---
5
-
6
- # Party Mode V2
7
-
8
- Use this skill as a thin entrypoint for the Party Mode V2 runtime board. The Python runtime is the source of truth for discussion state, board visibility, validation, round limits, and final reports.
9
-
10
- **Related:** [Party Mode](../party-mode/SKILL.md) -- manual advisory roundtable where the coordinator directly orchestrates child agents and synthesizes their output.
11
-
12
- ## Boundaries
13
-
14
- See [SHARED-BOUNDARIES.md](../party-mode/SHARED-BOUNDARIES.md) for common boundaries and advisory limits.
15
-
16
- - The moderator does not forward, summarize, rewrite, or synthesize child opinions for other child agents.
17
-
18
- ## Runtime First
19
-
20
- Always use the runtime controller:
21
-
22
- ```text
23
- .cowork-flow/run party-v2 init
24
- .cowork-flow/run party-v2 monitor
25
- .cowork-flow/run party-v2 view
26
- .cowork-flow/run party-v2 post
27
- .cowork-flow/run party-v2 respond
28
- .cowork-flow/run party-v2 advance
29
- .cowork-flow/run party-v2 record-action-result
30
- .cowork-flow/run party-v2 finalize
31
- ```
32
-
33
- Do not bypass a runtime rejection by manually accepting child output. Runtime validation failures must be fixed by a corrected child submission or by ending the discussion.
34
-
35
- ## Board Rules
36
-
37
- - Child agents communicate through the board API.
38
- - Child-visible board output must be current-round only.
39
- - Historical board state is runtime-private and may be used only for audit or final reports.
40
- - Use at least three child agents unless the effective runtime config explicitly allows a different value.
41
- - The runtime emits host-neutral next actions. The active Host Adapter or moderator executes them for Codex, Claude Code, or OpenCode.
42
- - Host action results must be recorded back through `record-action-result` so `agents.json`, audit logs, and action history can prove lifecycle state.
43
-
44
- ## Child Response Rules
45
-
46
- When a child sees a different position, it must choose exactly one:
47
-
48
- ```text
49
- maintain
50
- revise
51
- concede
52
- ```
53
-
54
- `concede` requires accepted evidence and why the prior position failed.
55
- `revise` requires the accepted part, rejected part, and updated position.
56
- `maintain` requires counter evidence or counter reasoning.
57
-
58
- Unsupported agreement, vague revision, and evidence-free rebuttal are invalid.
59
-
60
- ## Moderator Role
61
-
62
- The moderator may:
63
-
64
- - run runtime commands,
65
- - execute host-neutral next actions through the active host,
66
- - record off-topic warnings through the runtime,
67
- - close children only when the runtime asks for closeout,
68
- - show runtime status or final reports to the user.
69
-
70
- The moderator must not:
71
-
72
- - forward one child opinion to another child,
73
- - create a claim table for child prompts,
74
- - vote-count as validation,
75
- - decide which child is correct.
@@ -1,78 +0,0 @@
1
- ---
2
- name: start
3
- description: Use when starting or resuming main-session work in a cowork-flow project, after context compression, or before repository changes.
4
- ---
5
-
6
- # Start
7
-
8
- This skill is for the main session only. Formal subagents are accepted only after runtime context binding is recorded and must not load this startup flow.
9
- Main repository changes follow `Plan -> Implement -> Check -> Finish`.
10
- Before loading state, classify only whether the current request is a
11
- main-session request, read-only question, command-only wrapper, or unclear
12
- input. Do not infer subagent identity from prompt shape. If a child has
13
- `cowork_runtime_context_id`, hook/plugin binding may run early; otherwise the
14
- child must run the explicit shim bind before formal work.
15
-
16
- ## Load State
17
-
18
- 1. Read `AGENTS.md`.
19
- 2. Read `.cowork-flow/workflow.md`.
20
- 3. Read `.cowork-flow/config.yaml` for Codex dispatch hints and lifecycle hooks.
21
- 4. Run `.cowork-flow/run resume` or `.\.cowork-flow\run.cmd resume` on Windows.
22
- 5. Read the active task decision-anchor.md and JSONL indexes only when a task is active.
23
- 6. Read relevant `.cowork-flow/spec/*/index.md` files before code changes.
24
-
25
- Report active task, workflow state, blockers, and the next phase.
26
-
27
- ## Route
28
-
29
- Route in stages. Before state is loaded, true question-only requests may bypass
30
- Load State. Repository-changing main-session requests load state first. After
31
- state is loaded, apply the requirement clarification gate from
32
- `.cowork-flow/workflow.md`, then route to the next workflow phase; clear
33
- multi-step implementation uses `writing-plans` before fixed-agent dispatch.
34
-
35
- New requirements that are unclear, boundary-unclear, multi-approach, behavior-changing, or missing acceptance criteria use `brainstorming` before writing decision-anchor.md, planning, or fixed-agent dispatch. Small repository changes proceed directly only when the goal, scope boundary, and acceptance criteria are already clear.
36
-
37
- - Question-only work: answer directly.
38
- - Small repository change with clear goal/scope/acceptance: classify by `.cowork-flow/workflow.md`, create/start a task if required, then proceed.
39
- - Unclear, boundary-unclear, behavior-changing, or multi-approach work: use `brainstorming`.
40
- - Multi-step implementation: use `writing-plans`, then dispatch fixed agents where appropriate.
41
- - Before coding: use `before-dev`.
42
- - After implementation: use `check`, then `finish-work`.
43
-
44
- ## Parallel Route
45
-
46
- - Use parallel sessions for independent tasks.
47
- - Use a separate `git worktree` when independent sessions may write files.
48
- - Inside one task, dispatch parallel agents only for low-conflict slices with clear ownership.
49
- - After parallel slices finish, run final integrated verification before Check/Finish.
50
-
51
- ## Fixed Agents
52
-
53
- The main session owns coordination:
54
-
55
- - Research: dispatch `cowork-research` through the active Host Adapter.
56
- - Implementation: dispatch `cowork-implement` through the active Host Adapter.
57
- - Verification: dispatch `cowork-check` through the active Host Adapter.
58
-
59
- Every formal dispatch uses runtime-context dispatch:
60
-
61
- ```text
62
- cowork_runtime_context_id: <runtime_context_id>
63
- cowork_host_context_key: <host_context_key>
64
- ```
65
-
66
- Before spawning a formal child, create a runtime context with
67
- `.cowork-flow/run subagent init` and pass the returned prompt transport through
68
- the active Host Adapter. The child's first step is
69
- `.cowork-flow/run subagent bind <runtime_context_id> <host_context_key>`; if a
70
- hook/plugin already bound the same key, this command is idempotent. The parent
71
- must verify `status=bound` and `bound_context_key=<host_context_key>` before
72
- accepting output. If binding is missing, closed, invalid, or mismatched, the
73
- child fails closed and must not run start/resume/task activation/archive/commit
74
- or coordinate other agents.
75
-
76
- After dispatch, use adapter wait/list/cancel primitives, review the output,
77
- verify deliverables, and close the runtime context with
78
- `.cowork-flow/run subagent close <runtime_context_id>`.
@@ -1,74 +0,0 @@
1
- ---
2
- name: tdd
3
- description: Use when implementing behavior changes, bug fixes, state transitions, protocols, CLI/runtime contracts, data format changes, or error handling that can be tested before implementation.
4
- ---
5
-
6
- # TDD
7
-
8
- Use this before editing behavior-changing code.
9
-
10
- ## Red-Green-Refactor
11
-
12
- 1. Map the task decision-anchor.md acceptance criteria to stable IDs such as `AC-001`.
13
- 2. Write the smallest meaningful failing test first.
14
- 3. Run the red command and confirm it fails because the target behavior is missing or wrong.
15
- 4. Implement the smallest change that makes the behavior pass.
16
- 5. Run the green command and relevant broader verification.
17
- 6. Refactor only after the behavior is green.
18
-
19
- Do not count shallow tests as TDD evidence. Tests that only import code, assert a function exists, assert `True`, count mocks without behavior, or mirror implementation details do not satisfy red-green-refactor.
20
-
21
- ## Evidence
22
-
23
- Record TDD proof in `<task>/tdd.jsonl`. Each evidence line is one JSON object:
24
-
25
- ```json
26
- {
27
- "acceptanceId": "AC-001",
28
- "testFile": "tests/test_example.py",
29
- "testName": "test_behavior",
30
- "redCommand": "python -m unittest tests.test_example.TestCase.test_behavior -v",
31
- "redExitCode": 1,
32
- "redOutputExcerpt": "expected failure excerpt",
33
- "failureReason": "target behavior was not implemented",
34
- "whyThisTestMatters": "explains which user-visible behavior would regress",
35
- "greenCommand": "python -m unittest tests.test_example.TestCase.test_behavior -v",
36
- "greenExitCode": 0,
37
- "broaderVerification": "python -m unittest tests.test_example -v"
38
- }
39
- ```
40
-
41
- Every evidence record must map to a decision-anchor.md `acceptanceId`. The red failure must be about the target behavior, not syntax, import, environment, fixture, or setup failure.
42
-
43
- `testName` must resolve to the exact behavior test in `testFile`. Use one of:
44
- `test_method`, `ClassName.test_method`, or `module.ClassName.test_method`.
45
- Do not point evidence at a class, module, or a name that only exists in a command string.
46
-
47
- ## Exemption
48
-
49
- Pure documentation, comment-only, or formatting-only tasks may use an exemption record instead of red/green evidence:
50
-
51
- ```json
52
- {
53
- "type": "exemption",
54
- "acceptanceId": "AC-001",
55
- "exemptionType": "docs-only",
56
- "reason": "Only documentation wording changed; runtime behavior is untouched.",
57
- "verificationCommand": "git diff --check"
58
- }
59
- ```
60
-
61
- Do not use an exemption for runtime, CLI, protocol, state, data format, permission, or error-handling changes.
62
-
63
- ## Anti-Rationalization
64
-
65
- > The following excuses do not exempt the TDD evidence requirement. Each has an actionable alternative.
66
-
67
- | Agent psychology | Rebuttal | Alternative |
68
- |---|---|---|
69
- | "This logic is simple, no test needed" | Simple logic also breaks on edge cases and later modifications. Simplicity is not grounds to skip evidence. | Write a coverage test asserting core behavior — takes < 2 minutes |
70
- | "Other tests already cover this" | "Already covered" cannot be verified from tdd.jsonl evidence. Invisible evidence = non-existent. | Locate the corresponding acceptanceId and redCommand directly in tdd.jsonl |
71
- | "I'll add tests after implementation" | Post-implementation tests are not a red-green cycle — they verify implementation, not behavior. | Red first, then green; evidence stays in tdd.jsonl |
72
- | "It looks correct to the naked eye" | Errors visible to the naked eye don't become bugs. Bugs arise from scenarios that "look correct." | Turn "looks correct" inputs into assertions; turn "unexpected inputs" into edge-case tests |
73
- | "I've written similar tests, same pattern" | Same pattern does not mean same behavior. Each acceptanceId requires independent evidence. | Re-run redCommand for the current acceptanceId and record the output |
74
- | "This is an internal function, not externally visible" | Internal functions are relied upon by other internal callers. Behavior changes propagate through the call chain. | Test through the public entry point that calls it, or test the internal function directly |
@@ -1,39 +0,0 @@
1
- ---
2
- name: update-spec
3
- description: Use when implementation lessons, contracts, conventions, or gotchas should be captured in .cowork-flow/spec.
4
- ---
5
-
6
- # Update Spec
7
-
8
- Use this when a change teaches something future agents need to know.
9
-
10
- ## Decide Whether To Update
11
-
12
- Update specs when you learned:
13
-
14
- - A command, API, file, payload, or state contract.
15
- - A validation rule or error behavior.
16
- - A project convention.
17
- - A repeated failure mode or non-obvious gotcha.
18
- - A design decision future changes must preserve.
19
-
20
- Skip one-off implementation details that do not guide future work.
21
-
22
- ## Choose Location
23
-
24
- - `backend/` or `frontend/`: implementation contracts, signatures, examples, validation behavior, test points.
25
- - `guides/`: short thinking checklists and pointers to deeper specs.
26
- - `.cowork-flow/workflow.md`: process rules, phase gates, or task routing behavior.
27
- - `AGENTS.md`: project-level collaboration rules.
28
-
29
- ## Write
30
-
31
- Keep each update concrete:
32
-
33
- - State the trigger and scope.
34
- - Show the contract or command shape.
35
- - Include good/bad cases when useful.
36
- - State tests or checks that protect the behavior.
37
- - Update the matching `index.md` when adding a new topic.
38
-
39
- Before finishing, check for duplicate guidance and remove stale wording.
@@ -1,80 +0,0 @@
1
- ---
2
- name: using-cowork-flow
3
- description: Use when starting any conversation - establishes how to navigate cowork-flow workflow, requiring skill invocation before ANY response including clarifying questions.
4
- ---
5
-
6
- <EXTREMELY-IMPORTANT>
7
- If you think there is even a 1% chance a cowork-flow skill might apply to what you are doing, you ABSOLUTELY MUST invoke the skill.
8
-
9
- IF A SKILL APPLIES TO YOUR TASK, YOU DO NOT HAVE A CHOICE. YOU MUST USE IT.
10
-
11
- This is not negotiable. This is not optional. You cannot rationalize your way out of this.
12
- </EXTREMELY-IMPORTANT>
13
-
14
- # Using Cowork Flow
15
-
16
- ## When to Invoke
17
-
18
- Invoke this skill at the start of any main-session conversation, especially:
19
- - New session or context was compressed
20
- - No `<workflow-state>` found in context
21
- - User asks to "start working" or "resume work"
22
-
23
- ## Instruction Priority
24
-
25
- 1. **User's explicit instructions** (AGENTS.md, direct requests) — highest priority
26
- 2. **Cowork-flow skills** — override default system behavior where they conflict
27
- 3. **Default system prompt** — lowest priority
28
-
29
- ## Workflow Navigation
30
-
31
- ```text
32
- User message received
33
- │
34
- ├─ <workflow-state> present?
35
- │ ├─ Yes → follow status routing (see before-dev/SKILL.md)
36
- │ └─ No → have cowork_runtime_context_id?
37
- │ ├─ Yes → delegated_subtask. Execute leaf work.
38
- │ └─ No → need workflow bootstrap
39
- │
40
- ├─ Need bootstrap?
41
- │ ├─ Task exists (user references one) → ./.cowork-flow/run task start <dir>
42
- │ ├─ Task known but status unknown → ./.cowork-flow/run task next
43
- │ └─ No task known → clarify scope, then brainstorm or writing-plans
44
- │
45
- └─ Status routing (from <workflow-state>)
46
- ├─ no_task → brainstorming / writing-plans / continue
47
- ├─ planning → finish decision-anchor.md + jsonl, then task start
48
- ├─ in_progress → load context, implement
49
- ├─ review → cowork-check, then task complete
50
- └─ completed → task archive, create new task
51
- ```
52
-
53
- ## Skills as Gates
54
-
55
- Skills are **mandatory gates**, not optional helpers:
56
-
57
- | Phase | Gate Skill | Blocks If |
58
- |-------|-----------|-----------|
59
- | Before any edit | `before-dev` | Wrong status for the action |
60
- | Implementation | `tdd` | No red evidence for behavior changes |
61
- | Verification | `check` | Contracts violated, tests missing |
62
- | Decision doubt | `doubt-review` | L2 decisions unreviewed |
63
-
64
- If a skill applies, you **must** invoke it. Rationalizing skip = failure.
65
-
66
- ## Manual Override
67
-
68
- When auto-injection is unavailable (terminal, no hook):
69
-
70
- ```bash
71
- ./.cowork-flow/run task next # read-only navigator
72
- ./.cowork-flow/run task current # show active task
73
- ./.cowork-flow/run resume # restore session context
74
- ```
75
-
76
- Then invoke the appropriate skill for the phase.
77
-
78
- ## Subagent Context
79
-
80
- Don't invoke this skill if bound to a runtime context. Execute the assigned task.