AIT first Task exercise

Requires an installed AIT CLI, Node.js 22 or newer, and your own coding agent.
There are no third-party dependencies. No npm install is needed.
Node.js is a requirement of this example, not a requirement of AIT.

English: https://ait-native.dev/local-quickstart/#first-task
繁體中文：https://ait-native.dev/zh-tw/local-quickstart/#first-task
简体中文：https://ait-native.dev/zh-cn/local-quickstart/#first-task

1. Extract into a new directory and open a terminal there.
2. Run: node --test tests/baseline.test.mjs
   All three baseline tests should pass before you modify anything.
3. Prepare the new example before starting any Task:
   ait init
   ait config set --user-name "your-name"
   Replace your-name with your chosen local review identity. Task start records
   the initial baseline as part of its initialization workflow. Create later
   checkpoint Snapshots only inside the returned Task worktree and always pass
   its Task ID. Read the generated AGENTS.md instructions in your coding agent.
4. Ask the agent to implement the feature below in a sprint-bound Task.
5. After Task finish, return to this original directory and run:
   node --test tests/*.test.mjs
   node checks/first-task.mjs
   The acceptance check prints FIRST_TASK_ACCEPTED only after the feature works.
   Before implementation, the acceptance check is expected to fail.
6. Review the actual Task finish result for Task completion and worktree cleanup.
   The acceptance check proves feature behavior, not AIT workflow completion.

First request:
Read AGENTS.md and follow the repository's AIT workflow. Add openTasks(tasks)
to src/tasks.mjs. Return a new array of tasks whose done property is not true,
in original order, preserving objects and input data. Keep taskTitles working.
Add focused tests. Do not edit checks/, remove existing tests, or add dependencies.
Run the existing tests and node checks/first-task.mjs before finishing the Task.

Optional parallel exercise:
Use a FRESH extraction, repeat the init and config setup in step 3, then give
the following requests to three
separate agent sessions. Require each to follow AGENTS.md, bind its own sprint
item, and work only in its returned edit_root. Let each finish its Task.
A. The first request above. Own src/tasks.mjs and a separate test file.
B. Add taskCountLabel(count) in src/labels.mjs, with tests. Non-negative integer
   input gives "1 task" for one, otherwise "N tasks". Preserve boardTitle.
C. Add priorityRank(value) in src/priority.mjs, with tests. high/normal/low give
   0/1/2; unknown or absent input gives 3. Preserve priorityOrder.
Give B and C the same constraints: preserve checks/ and existing tests, add no
dependencies, and finish via the configured AIT workflow.
After all three Tasks finish, run the full tests and checks/parallel-tasks.mjs
from the original directory. Expect PARALLEL_TASKS_ACCEPTED.

This exercise covers compatible changes. It does not deliberately create a
conflict, measure throughput, or establish a time or token saving. Record any
actual conflicts or intervention honestly. The website's conflict scene is an
illustration; a clean rebase never proves semantic compatibility.

Use, modify, and redistribute the contents of this exercise for evaluation and
learning. This permission covers this example only; AIT's own license remains
the one shipped with the installed product.
