4.5 KiB
name, description
| name | description |
|---|---|
| initial-setup | Set up or customize a freshly cloned generic project template. Use when asked for initial setup, getting started, onboarding, creating project configuration, or replacing sample project values. Interview the user and configure task tracking for any project, including novels, research, events, and software, without assuming a language or platform. |
Initial Project Setup
Configure this clone for its actual project, not for the project that originally supplied the template. This workflow is equally valid for a novel, research, an event, or software.
Inspect First
Read the README, project-config.json, AGENTS.md, and task frontmatter and details. Check Git status. Preserve existing materials and uncommitted changes.
Interview
Use the available user-question tool, one question at a time. Reuse answers already given; do not ask again unnecessarily. Collect:
- Project name.
- A short description of its purpose, audience, and intended outcome.
- Task ID prefix (recommend
EXfor an example; otherwise let the user choose). Validate[A-Za-z][A-Za-z0-9_-]*; display IDs will be uppercase. - Whether there is one project category or several. Collect each label,
unique stable key, and repository-relative path (
.for a single project). - How completed work should be verified. Ask about named commands only if relevant. Do not assume tests, builds, a development server, a programming language, or a target platform. Editorial review is a valid answer.
- Whether to keep and adapt the sample task. Preserve real tasks unless the
user explicitly approves replacing them. Collect any desired task-type
changes; generic
taskandchoreare sufficient for many projects.
Present a concise configuration summary and obtain confirmation before replacing existing configuration or task content.
Write the Configuration
Update project-config.json as valid JSON:
{
"name": "Example Project",
"description": "Describe the project's purpose and intended outcome.",
"commands": {}
}
name and description must be non-empty strings. commands maps arbitrary
non-empty names to non-empty command strings. Leave it empty when no commands
are applicable. Record non-command acceptance/review criteria in AGENTS.md or
the task descriptions. Never store secrets or machine-specific absolute paths.
Commands are prompt guidance, not automatically run by the task-agent helpers.
Update task frontmatter with the agreed prefix and project categories. Keep YAML in the flat format understood by the task parser: unindented scalar fields, two-space list items, and four-space item fields. Do not introduce YAML anchors, nested mappings, or multiline scalar values. Keep the existing status lifecycle unless the user explicitly requests changes.
If renaming a project key, migrate matching task anchor data-project
attributes. Preserve task numbers, descriptions, checklists, epic/subproject
assignments, and existing internal links. Do not duplicate task configuration
in JSON. Update the README's project description and examples to match, keeping
Getting Started at the top. Update AGENTS.md only with confirmed project facts
and verification criteria; never invent an application architecture.
Synchronize and Verify
If the optional CLI runtime is available:
- Check whether
TASK_ID_PREFIXorTASKS_FILEoverrides the intended configuration; explain conflicts rather than silently changing the result. - Run
./scripts/update-tasks -f docs/tasks.md. This migrates IDs/internal links and regenerates tables. Do not manually edit generated tables. - Run
./scripts/get-tasks --all -f docs/tasks.mdand query a task by number. - Run
python3 -m json.tool project-config.jsonandpython3 -m unittest discover -s scripts/tests -v. - Verify the configured name, description, commands, project labels, and task prefix persisted. Check for stale template identities and broken links.
- Summarize changed files, verification results, and any remaining human review.
The tracker synchronizer currently requires at least one detailed task. Do not remove the last task and claim synchronization succeeded; keep/adapt it or ask how to handle an explicitly requested empty tracker.
If the runtime is unavailable, disclose that and offer either tool installation or a manual Markdown workflow. Do not run application commands merely because setup recorded them. Do not commit unless the user asks.