task (entity)
Generated from solutions/ontological/lib/model/entities/task/schema.ts.
Schema version: 6.
Description
Section titled “Description”A Task is the atomic unit of executable work: one problem, one
implementer, typically one PR. Tasks are what orchestration dispatches
and what the lease protocol claims. A Task with children (via
parent_key:) is an epic — an organizational rollup that
orchestration skips; epic-ness is derived, not a separate type
(D-ORMG-data-model).
A Task is not:
- A Milestone. A Milestone is a release narrative with a target date and success criteria; Tasks are its members.
- A Backlog item. A Backlog item is a pre-triage idea; it becomes a Task at promotion, when it earns a spec.
Properties
Section titled “Properties”| Field | Type | Required | Description |
|---|---|---|---|
type | string | Artifact type — used by the frontmatter validator to pick this schema. Optional today (the validator falls back to the schema named after the parent directory), but required once other artifact types coexist in the same tree. | |
schema_version | string | Numeric string version of the per-type schema this instance conforms to. Compare numerically when ordering versions. Independent of any product version. The value 0 is a documented sentinel meaning ‘pre-SDLC-managed’ — audit treats it as intentional, not stale. Optional in frontmatter: never in any per-type required set (audit flags a MISSING stamp as drift, not the validator). | |
id | string | yes | Immutable identifier per D-0002-entity-identifier-shape: ‘T-’ + 4 base-36 chars [0-9A-Z]. Matches the filename; never renamed once assigned. |
status | string | Lifecycle stage. Four majors: planning/ | |
title | string | Human-readable headline. Frontmatter is canonical; the body opens with # <title> for readability. | |
created | string | ISO date the entity was first authored. | |
last_reviewed | string | ISO date the entity was last reviewed. Optional: never in any per-type required set. | |
related | array | Loose, non-directional cross-references — task IDs or filenames this task is tied to. For hard ‘B cannot start until A closes’ dependencies use depends_on instead. | |
tags | array | Free-form labels. Required at the common level, defaulting to []. Per-type schemas may add a contains constraint (e.g. Principle requires exactly one principle/<category> tag). | |
need_human_review | boolean | Review-tracking flag. | |
impact | string | Triage value of doing this work. | |
priority | boolean | Human-set ordering override. true sorts this task above all priority: false/absent tasks regardless of impact/complexity/created. Boolean by design — a sparse ‘do this one first’ override valve. Absent means false. | |
complexity | string | Rough effort. small: <1 day, medium: 1-3 days, large: multi-day or multi-PR. | |
autonomy | string | Who may execute this task. human-only: an LLM agent should not pick this up. supervised: an LLM may attempt the work, but a human must review and approve before any state-changing action beyond opening a PR. autonomous/pr: an agent may best-effort self-ready and implement this task autonomously up to opening a PR; it never merges. Absent: unclassified (downstream pickup skills decide policy). | |
kind | string | Which runner drives this task’s execution (D-VSLI-distributed-work-runner-architecture). Absent means implementation, so every pre-existing task stays dispatchable. LEAF-EXECUTION-ONLY: kind selects a runner for a leaf task and never gates containers — a task with children is a structural rollup, skipped by orchestration regardless of its kind. planning / research leaves stay human-driven until their runners exist. | |
scope | object | The region of the workspace this task expects to write (D-VSLI-distributed-work-runner-architecture §Scope claims). SDLC’s corpus projection of foreman::work_order::ScopeClaim, which is the domain-neutral definition. Absent means unscoped, which schedules exactly as it did before scope claims existed — adoption is additive. Not named impact: that word is taken. | |
scheduling | object | Soft inputs to scheduling policy, never guarantees — policy may ignore all of them (D-VSLI-distributed-work-runner-architecture §Scheduling). SDLC’s corpus projection of foreman::work_order::SchedulingHints, minus its priority (SDLC expresses relative urgency at the top level via priority and impact) and its retry budget (no SDLC reader or writer exists for one). | |
parent_key | string | Wikilink to this task’s parent task. A task with one or more children IS an epic — epic-ness is derived from parent_key, not a separate entity type. Optional; absent means top-level. | |
depends_on | array | Hard, one-direction dependencies this task is blocked by. Each entry is a strict wikilink to a task. Semantic: the target must reach a closed/ | |
prs | array | URLs of PRs opened during this task’s lifecycle, in temporal order (newest last). Written by /sdlc:task-work’s PR-open step; verified/appended by /sdlc:task-close-out. Primary use case is Obsidian static-viewer affordance. | |
relevance_note | string | Short note (one line) on what shifted in the codebase since the task body was written. Cleared once the task is closed. | |
completion_note | string | Multiline summary of what shipped. Required when status starts with closed/. | |
definition_gap | string | If the task spec is incomplete, what’s missing. Set by /sdlc:task-review or /sdlc:task-ensure-ready when verification fails; resolved by editing the body. | |
resolution | string | Legacy: outcome of a bare-closed task. | |
resolution_date | string | Legacy: ISO date the bare-closed task was resolved. | |
resolution_commit | string | Legacy: git short-hash of the commit that resolved the task. | |
readiness_verified_at | string | ISO 8601 UTC datetime when this task last passed the implementation-ready contract. Written exclusively by /sdlc:task-ensure-ready on pass; cleared on fail and by close-out steps. Declared near the bottom so the canonical key order places the stamp at the bottom of the frontmatter. | |
touchpoints_verified_at | string | ISO 8601 UTC datetime when this task’s touchpoint tables last resolved cleanly against the codebase. Single stamp at the frontmatter level. Declared last so the canonical key order places it at the bottom of the frontmatter. |
status
Section titled “status”planning/draftplanning/proposedplanning/needs-definitionplanning/backlogopen/readyin-progressin-progress/blockedclosed/doneclosed/supersededclosed/partially-supersededclosed/obsoletedclosed/relocatedclosed/no-reproclosed/wontdo
impact
Section titled “impact”highmediumlow
complexity
Section titled “complexity”smallmediumlarge
autonomy
Section titled “autonomy”human-onlysupervisedautonomous/pr
implementationplanningresearch
resolution
Section titled “resolution”fixedwontfixsupersededobsoleted