Willem van den Ende ba0903714c refactor: replace number health with Health value object in MagicalObject
- MagicalObject: internal #health and #maxHealth now Health type
- HealingObject: constructor, create, and heal use Health value object
- MagicalWeapon: constructor, create, and use use Health value object
- DamageDealer and Healer interfaces: health: number -> health: Health
- magical-objects.spec.ts: all assertions use .health.value
- Run npm run checks: 0 errors, 70 tests passing
2026-06-14 13:35:44 +01:00

89 lines
2.5 KiB
Markdown

---
name: yak-tasks
description: Orchestrate sub-agents using yx task tracking. Use when delegating work to sub-agents, tracking task progress, or marking tasks complete. For breaking down problems into tasks, use /skill:problem-breakdown first.
---
# Yak Task Orchestration
Coordinate sub-agent work using the `yx` CLI. The main agent creates tasks and delegates to sub-agents; sub-agents execute domain work without yx CLI access.
## Workflow
1. **Break down**`/skill:problem-breakdown` (creates yaks with context)
2. **Delegate** → sub-agents run on yaks via `pi -p` (blocked from yx CLI)
3. **Track**`yx list` / `yx show <task-id>`
4. **Verify** → run `npm run checks` after sub-agent work
5. **Complete**`yx done <task-id>`
## Running Sub-Agents
Sub-agents execute in print mode and are **hard-blocked from using `yx` commands** (see `.pi/extensions/yak-mode-gate.ts`). They receive:
- The yak's `.context.md` (task description)
- `AGENTS.md` (project conventions)
- Domain files to work on
- No yx CLI access
```bash
# Run a sub-agent on a specific yak
# The sub-agent reads the yak context and executes the work
pi -p "Work on yak: <task-name>. Read .yaks/<task-id>/.context.md for details."
```
## Tracking Progress
```bash
# List all yaks with hierarchy
yx list
# Show yak details
yx show <task-id>
# Check state directly
cat .yaks/<task-id>/.state
```
States:
- `pending` — not yet started
- `in-progress` — being worked on
- `done` — completed
## Marking Tasks Complete
```bash
yx done <task-id>
```
Always verify before marking done:
```bash
# 1. Check state
cat .yaks/<task-id>/.state
# 2. Review what was done
cat .yaks/<task-id>/.context.md
# 3. Run project checks
npm run checks
```
## Sub-Agent Communication
Sub-agents can read yak state files directly (no yx CLI needed):
```bash
cat .yaks/<task-id>/.name # task name
cat .yaks/<task-id>/.state # current state
cat .yaks/<task-id>/.context.md # task description
cat .yaks/<task-id>/.created.json # creation metadata
```
## Best Practices
- **Delegate after breakdown** — run `/skill:problem-breakdown` first to create structured yaks
- **Verify before marking done** — always run `npm run checks` to catch sub-agent errors
- **Review context** — read `.context.md` to understand what the sub-agent was supposed to do
- **Keep yaks focused** — each yak should be a single file operation or one method implementation
- **Use hierarchy** — parent yaks block children; fix leaves first